我正在尝试创建一个简单的程序,从dna序列文件中读取酶切。我的问题是我无法在循环中重复第一个块。我做错了什么,所以我可以把它变成一个循环?非常感谢任何帮助,谢谢!!
sequence = open('sequence.txt').read().replace('\n','')
enzymes = {}
fh = open('enzymes.txt')
print('Restriction Enzyme Counter')
inez = input('Enter a Restricting Enzyme: ')
def servx():
for line in fh.readlines():
(name, site, junk, junk) = line.split()
enzymes[name] = site
if inez in line:
xcr = site
print('Active Bases:', site)
for line in sequence.split():
if xcr in line:
bs = (sequence.count(xcr))
print('Enzyme', inez, 'appears', bs, 'times in Sequence.')
servx()
inez = input('Find another Enzyme? [Yes/No]:')
if inez is 'Yes':
servx()
fh.close()
答案 0 :(得分:0)
你可能做不到你认为的事情:
received: (data) ->
if user_id == data.user_id
$('#messages').append "<div class='current-user msg'>" + data.text + "</div>"
else
$('#messages').append "<div class='other-user msg'>" + data.text + "</div>"
$('#message_text').val('')
messages_to_bottom()
for line in fh.readlines():
读取整个文件并返回它读取的内容。所以当你这样做时,循环中的行变量不仅仅是文件的一行,它一次就是整个文件。所以你的for循环只运行一次,因为在第一个循环之后没有别的东西在文件中迭代,因为你读到了文件结束。基本上你确实从文件中读了一行,但你一次性地耗尽了整个文件。
我认为您想要做的是一次读一行直到文件结束:
.readlines()
或者一起阅读文件的更好方法是:
for line in fh:
最后一种方法并不要求with open('filename.txt') as fh:
for line in fh:
print(line)
为您处理的文件。fh.close()
。但请注意最后一种方法如何使用for line in fh:
答案 1 :(得分:0)
以下问题在您的代码中会阻止您的函数servx()
多次运行:
if inez is 'Yes':
这将检查inez
是否与文字字符串'Yes'
的实例相同。对于所有意图和目的,这将始终返回false。你想要的是这个:
if inez == 'Yes'
根据这个问题,检查字符串是否匹配,而不是对象实例本身:Why does comparing strings in Python using either '==' or 'is' sometimes produce a different result?