我在python中创建了这个递归函数,只是为了尝试登录提示,如果按下Ctrl+C
,就不应该终止程序,但我无法猜测为什么if
语句在其中不起作用!运行时,即使条件得到满足,它也总是接受输入。当键入正确的pswd时,它不应该退出程序吗?这是我的密码。。。
import sys
def lock():
try:
pswd = input('Enter your password : ')
if pswd == '123':
sys.exit()
else:
lock()
except KeyboardInterrupt:
lock()
lock()
它应该在pswd == '123'
时终止程序。但结果是:
Enter your password : 6237
Enter your password : 123
Enter your password : 123
Enter your password : 123
Enter your password : kj
Enter your password : 123
Enter your password :
即使pswd是正确的,它也会不断询问密码!提前感谢!:(
您的代码似乎没有任何问题。它在Python 3.7.5 (default, Nov 7 2019, 10:50:52) [GCC 8.3.0] on linux
上对我来说很好
只需确保在密码提示的末尾没有任何尾随空格。
试试这个:
import sys
def lock():
try:
pswd = input('Enter your password : ').rstrip()
if pswd == '123':
sys.exit()
else:
lock()
except KeyboardInterrupt:
lock()
lock()
输出:
Enter your password : abc
Enter your password : 123
Process finished with exit code 0