python - 如何允许识别此 if 语句?
问题描述
我正在尝试为登录代码创建一个循环,并且一直在努力格式化此代码以达到第 (16) 行的“用户接受”。我怎样才能重新格式化它以允许此代码正常工作?
##### USER INFO #####
Users = {
'jc1':123
,'jc2':213
,'jc3':312
,'jc4':321
,'jc5':231}
ADPIN = '14726'
##### LOG-IN #####
while True: #Loop Creation
JK = input('Please enter your username: ') #Username Check
if JK in Users:
DK = input('Please enter your password: ') #Password Check
print('Bug Text Main')
if JK and DK in Users: #Problem Statement
print('User Accepted: Hello '+JK+'.') #Unreachable Code
print('Objective Text')
else:
ToC = input('It appears that the username entered does not exist: Would you like to try again(Press: 1) or create an account(Press: 2)') #Retry / Account Creation
if ToC == '2':
AD = input('Please enter an administrative pin: ')
if AD == ADPIN:
add = input('Please enter a username: ')
tht = input('Please enter a password: ')
Users.update( {add:tht})
print('Bug Test Users Append')
else: #Restart / Retry
print('Bug Test Restart')
解决方案
我假设Users
字典键是用户 ID,值是相应的密码。然后:
如果您达到以下“问题陈述”,您就知道它JK
在 中Users
,因此JK
计算结果为True
,因此请替换:
if JK and DK in Users: #Problem Statement
和:
if Users[JK] == DK:
最初的语句是针对字典中的所有用户 ID 测试密码。
另一个问题是您的字典值在输入字符串时是 int 值。因此,要么将您的字典值更改为“121”之类的字符串,要么将您的输入语句更改为:
DK = int(input('Please enter your password: ')) #Password Check
但请注意,如果用户输入的内容不是有效整数,则上述内容将引发异常。因此,您可能希望将上述内容放在一个try
块中。
推荐阅读
- javascript - 悬停时显示随机图像
- python - Python 简单代码我无法修复 help1!1
- typescript - 如何在纯 javascript 中访问 typescript 模块?
- kubernetes - 如何使用 Traefik 和 Kubernetes 启用客户端证书身份验证?
- laravel - 如何在 Laravel::Storage 中使用带有自定义 cname 的“temporaryUrl”和 Amazon S3 -> CloudFront 并使用 Cname
- sql-server - 操作存储过程中的数据列表以在另一个存储过程中使用
- .net - 将 ComboBox SelectedValue 绑定到 Nullable(Of Integer) 属性会引发 InvalidCastException
- python - python install pip 出现错误“ModuleNotFoundError: No module named '_struct'”
- css - 如何选择前面没有另一个特定元素的元素?
- angular - “HubConnection”类的构造函数是私有的,只能在类声明中访问