在python3.8版本中如何使用next,用迭代器的话,就没办法用while循环了

 原本是想用while循环来实现搜索数据,在找到数据时,可以终止循环。

思路是用while的判断条件来实现循环的终止,想用next每次只读取一行。

但是,简单的用next函数似乎无法实现;在while中使用迭代器,循环又终止不了

没办法了😂

 

#先把文件附给变量
swissprot=open("SwissProt.txt")
ac='Q0E0C6'
result=None
#用while来实现可终止的循环
while result==None:
#用到一个next的方法来读line,没有这个属性???CSDN上说是要区分iterable,iterator,用iter函数可以将iterable变成iterator
	it=iter(swissprot)
	line=next(it,'-1')   #这个函数是每输入一次就执行下一行的内容
#读到标题行时,分割,然后再判断,符合就赋给结果,这样就可以停止了
	if line[0]=='>':
		line.split('|')
		if line[1]==ac:
			result=line.strip()
			print(result)

 

你不需要自己用迭代器循环,直接用for循环就行,它是在for循环内部自动调用迭代器的

for line in swissprot:

在找到数据时用break结束循环

 

原来是我这一步错了,无语地笑了

if line[0]=='>':
		line.split('|')
		if line[1]==ac:

应该改为

if line[0]=='>':
		if line.split('|')[1]==ac:

虽然花费了很多时间,但是问题终于解决了,还是开心的