【发布时间】:2022-12-16 02:42:02
【问题描述】:
编辑:这个问题是由错误的 python/IDE 安装引起的。重新安装 IDE 后代码工作正常。
我正在尝试创建一个简单的程序,提示输入密码两次,如果输入正确两次,则会输出一条消息,提示“密码已设置”。问题是它跳过了我的第一个 if 语句,声明它必须在 8-12 个字符内才能有效。任何关于为什么这不起作用的信息将不胜感激。
pswrd = input('Please choose a password: ')
if len(pswrd) < 8 or len(pswrd) > 12:
print('The password you have chosen is invalid. Please create a password between 8-12 characters.')
else:
pswrd2 = input('Please retype your new password for confirmation: ')
if pswrd2 == pswrd:
print('Thank you. Your password has been set.')
else:
print('Your two entries do not match. Please try again.')
输出是这样的;
Please choose a password: seven
Please retype your new password for confirmation: seven
Thank you. Your password has been set.
Process finished with exit code 0
如您所见,它无法识别少于 8 个字符的密码。为什么是这样?
【问题讨论】:
-
对我来说很好用。 PS:你应该使用
getpass.getpass()在 Python 中输入密码,它更安全并且在输入时隐藏在终端上的密码。 -
作为旁注,如果原始密码的长度不合适,此代码将在第二个
if语句上引发错误,因为pswrd2将是一个未定义的变量。 -
该代码似乎也适合我。根据@MarcoBonelli,您应该使用
getpass.getpass().... -
@MarcoBonelli 感谢您的建议。这仅适用于大学项目,因此只需要基础知识
-
这段代码不可能产生输入为“七”的输出。您必须运行不同的代码。
标签: python if-statement