我安装了numpy1.8.2
,然后尝试了以下代码:
import numpy as np
a = np.arange(10)
print a, np.random.shuffle(a)
Run Code Online (Sandbox Code Playgroud)
但它的输出是:
[0 1 2 3 4 5 6 7 8 9] None
我不知道为什么它会返回None
,根据它的文档,它应该可以工作!我不知道问题所在。
我PyCharm 3.1
在Windows 7上使用。
任务:
编写一个程序,检查作为参数提供的单词是否是等值线.Isogram是一个不会出现多次字母的单词.
创建一个名为is_isogram的方法,它接受一个参数,一个单词来测试它是否是等值线图.此方法应返回单词的元组和布尔值,指示它是否是等值线图.
如果提供的参数是空字符串,则返回参数和False :(参数,False).如果提供的参数不是字符串,则引发TypeError,并显示消息'Argument should a a string'.
例:
is_isogram("abolishment")
Run Code Online (Sandbox Code Playgroud)
预期结果:
("abolishment", True)
Run Code Online (Sandbox Code Playgroud)
可见测试
from unittest import TestCase
class IsogramTestCases(TestCase):
def test_checks_for_isograms(self):
word = 'abolishment'
self.assertEqual(
is_isogram(word),
(word, True),
msg="Isogram word, '{}' not detected correctly".format(word)
)
def test_returns_false_for_nonisograms(self):
word = 'alphabet'
self.assertEqual(
is_isogram(word),
(word, False),
msg="Non isogram word, '{}' falsely detected".format(word)
)
def test_it_only_accepts_strings(self):
with self.assertRaises(TypeError) as context:
is_isogram(2)
self.assertEqual(
'Argument should be a string',
context.exception.message,
'String inputs allowed only'
)
Run Code Online (Sandbox Code Playgroud)
我的解决方案
def is_isogram(word):
if type(word) != str: …
Run Code Online (Sandbox Code Playgroud) 我有一个文本文件,其中每个ID行开头,>
下一行是一系列字符.字符序列之后的下一行将是另一个以ID开头的ID行>
.但在其中一些,而不是我有序列“Sequence unavailable”
.ID行之后的序列可以是一行或多行.像这样的例子:
>ENSG00000173153|ENST00000000442|64073050;64074640|64073208;64074651
AAGCAGCCGGCGGCGCCGCCGAGTGAGGGGACGCGGCGCGGTGGGGCGGCGCGGCCCGAGGAGGCGGCGGAGGAGGGGCCGCCCGCGGCCCCCGGCTCACTCCGGCACTCCGGGCCGCTC
>ENSG00000004139|ENST00000003834
Sequence unavailable
Run Code Online (Sandbox Code Playgroud)
我想过滤掉那些ID “Sequence unavailable”
.输出应如下所示:
输出:
>ENSG00000173153|ENST00000000442|64073050;64074640|64073208;64074651
AAGCAGCCGGCGGCGCCGCCGAGTGAGGGGACGCGGCGCGGTGGGGCGGCGCGGCCCGAGGAGGCGGCGGAGGAGGGGCCGCCCGCGGCCCCCGGCTCACTCCGGCACTCCGGGCCGCTC
Run Code Online (Sandbox Code Playgroud)
你知道如何在python中做到这一点吗?
我正在尝试编写一个简单的逻辑,它将在一个列表中查找以其他列表中的单词开头的单词.例如:
a = ["let","test","g"]
b = ["letter", "testing","good","egg","protest"]
Run Code Online (Sandbox Code Playgroud)
应该回来:letter, testing, good
.
我已经涉足.startswith()
但似乎无法使用整个列表进行搜索.还试过:
if any(i in a for i in b):
Run Code Online (Sandbox Code Playgroud)
但是我无法得到任何结果.
我有一个像这个例子的大文本文件:
例:
>chr9:128683-128744
GGATTTCTTCTTAGTTTGGATCCATTGCTGGTGAGCTAGTGGGATTTTTTGGGGGGTGTTA
>chr16:134222-134283
AGCTGGAAGCAGCGTGGGAATCACAGAATGGCCGGGACCTTAAAGGCTTTGCTTGGCCTGG
>chr16:134226-134287
GGAAGCAGCGTGGGAATCACAGAATGGACGGCCGATTAAAGGCTTTGCTTGGCCTGGATTT
>chr1:134723-134784
AAGTGATTCACCCTGCCTTTCCGACCTTCCCCAGAACAGAACACGTTGATCGTGGGCGATA
>chr16:135770-135831
GCCTGAGCAAAGGGCCTGCCCAGACAAGATTTTTTAATTGTTTAAAAACCGAATAAATGTT
Run Code Online (Sandbox Code Playgroud)
此文件分为不同的部分,每个部分有2行.第一行以>
(此行称为ID)开头,第二行是字母序列.我想GGAC
在字母序列中搜索一个短主题(),如果它们包含主题,我想获得该行的ID(在该行之上一行).
对于上面的例子,这是预期的输出:
预期产量:
>chr16:134222-134283
>chr16:134226-134287
Run Code Online (Sandbox Code Playgroud)
我试图使用以下命令在python中执行此操作,但它不返回我想要的.
infile = open('infile.txt', 'r')
ss = 'CCGA'
new = []
for line in range(len(infile)):
if not infile[line].startswith('>'):
for match in pattern.finder(ss):
new.append(infile[line-1])
Run Code Online (Sandbox Code Playgroud)
你知道怎么解决吗?
我有 DNA 序列数据。例如,
X="ACGGGT"
Y="ACGGT"
Run Code Online (Sandbox Code Playgroud)
我想知道对齐分数,因此我使用了biopythonpairwise2函数。例如,
from Bio import pairwise2
from Bio.pairwise2 import format_alignment
alignments = pairwise2.align.globalxx(X, Y)
for a in alignments:
print(format_alignment(*a))
Run Code Online (Sandbox Code Playgroud)
这成功地显示了 DNA 比对,但我只需要如下的分数。有没有办法只显示分数?
我使用了biopython,但如果有更好的方法,我们将不胜感激。
如果我有一个清单
l = [0,1,2,3,4,5,0,23,34,0,45,0,21,58,98,76,68,0]
Run Code Online (Sandbox Code Playgroud)
我想用从列表 l 中的最大值开始的增量值替换所有 0。所以在这种情况下,最高值是 98,所以 0 应该替换为 99,100,101,102 和 103。
这是我的解决方案,它工作正常
for ix,i in enumerate(l):
m = max(l)
if i == 0:
l[ix] = (m+1)
Run Code Online (Sandbox Code Playgroud)
但我想知道解决这个问题的最佳方法是什么。
我想理解为什么Python 3.5.1有时会抛出一个IndentationError
,有时候抛出一个SyntaxError
,当我希望它IndentationError
在两种情况下抛出它时.例如:
1)
>>> if True:
... pass
... else:
File "<stdin>", line 3
else:
^
IndentationError: unexpected indent
Run Code Online (Sandbox Code Playgroud)
2)
>>> if True:
... pass
... else:
File "<stdin>", line 3
else:
^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud) python ×8
biopython ×2
fasta ×2
python-3.x ×2
dna-sequence ×1
list ×1
numpy ×1
pairwise ×1
pycharm ×1
python-2.7 ×1
startswith ×1
string ×1