python-3.x - 搞乱这个小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
推荐阅读
- tensorflow - Tensorflow.js 错误:未知层:功能性
- azure - 在客户帐户中自动在 Azure 中创建服务主体
- r - 我需要帮助在 r 中使用 smooth.spline 进行绘图
- google-chrome - 保存时自动刷新浏览器
- c# - 具有未定义列数的表
- python - Python BeautifulSoup 和请求
- php - 将 PHP 连接到 React
- javascript - DropZone JS 和 Laravel 块文件上传失败
- steam - 如何使用 Steam Web API 仅获取 Steam 游戏的完整列表(无 DLC、无预告片等)
- javascript - 警报有时工作有时在JS中不起作用