该程序将检查一个充满密码的文件,直到它与有效密码匹配为止。
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()
找到匹配的代码后,如何停止执行代码?
答案 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")
这里b
和pname
都是迭代器,因此一旦找到passvalid
,它们就会停止求值。