我如何遍历列表,直到找到一个元素

时间:2019-10-20 20:56:50

标签: python list for-loop iteration

该程序将检查一个充满密码的文件,直到它与有效密码匹配为止。

b=open('passy.txt','r')
pass_check=b.readlines()

for i in pass_check:
    pname.append(i)

for i in pname:


    if passvalid in pname:
        print("Password is correct")
        break
    else:
        print("Password isnt correct")
b.close()

找到匹配的代码后,如何停止执行代码?

3 个答案:

答案 0 :(得分:0)

如果要停止执行for或while循环,请使用import { pipe, map } from 'ramda' export const mapP = <T,R>(xf: (value:T) => Promise<R>|R) => (data: T[]): Promise<R[]> => pipe( map(xf), x => Promise.all(x), )(data) 。在打开文件时也不使用with语句是不好的编码习惯。使用完后,with语句会自动关闭文件。

编辑:偶然地,我读完您的代码,似乎您正在尝试检查有效密码是否等于整数的第i个元素,这显然是错误的。

break

答案 1 :(得分:0)

  

找到匹配的代码后,如何停止执行代码?

您可以将逻辑封装在一个方法中,并在找到匹配项后在该方法中使用return语句。

答案 2 :(得分:0)

我对您的问题感到困惑,但是FWIW似乎您使事情变得过于复杂。尝试以下方法:

passvalid = 'hunter2'

with open('passy.txt') as b:
    pname = (s.rstrip('\n') for s in b)
    if passvalid in pname:
        print("Password is correct")
    else:
        print("Password isn't correct")

这里bpname都是迭代器,因此一旦找到passvalid,它们就会停止求值。