搞砸了这个小python递归函数



我在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

最新更新