![](/img/trans.png)
[英]Why does my python give me the same output into a list no matter the input?
[英]Why my for looping an index in python not give me correct output
我是python的新手,我正在嘗試進行基本的登錄帳戶檢查,並且某種程度上,我的代碼沒有顯示我想要的內容。 我已經定義了三個用戶名,並且當我運行代碼時,如果第一次輸入不正確的用戶名,則代碼顯示帳戶不會退出,但是不建議您這樣做。 我不知道為什么
我認為這是我的for循環問題,因為當我輸入錯誤的帳戶時,我的i索引從0開始,一直循環直到結束索引,然后比較輸入的用戶名和列表中存在的用戶名。 然后在比較所有索引后,如果找不到用戶名,則表明打印帳戶不存在,我嘗試解決此問題,但找不到正確的方法。
user1=[
{'id':'0001','name':'123','password':'a123', 'balance':0.00},
{'id':'0002','name':'456','password':'a456', 'balance':0.00},
{'id':'0003','name':'789','password':'a789', 'balance':0.00}
]
for x in range(0,4):
name = input('User Name:')
for i in range(len(user1)):
if name == user1[i]['name']:
password = input('Password:')
if password == user1[i]['password']:
print("Success login")
continue
if name != user1[i]['name']:
print("Account not exist, input new one")
如果輸入錯誤的用戶名; 它應該顯示帳戶不存在,請輸入新密碼,然后輸入用戶名456,然后詢問正確的密碼。
看一下循環體的邏輯:
for i in range(len(user1)):
if name == user1[i]['name']:
password = input('Password:')
if password == user1[i]['password']:
print("Success login")
continue
if name != user1[i]['name']:
print("Account not exist, input new one")
無論輸入什么內容,您都永遠不會到達第二條if
語句: if
程序到達該點,就告訴它continue
下一次循環迭代。 嘗試以下方法:
for i in range(len(user1)):
if name == user1[i]['name']:
password = input('Password:')
if password == user1[i]['password']:
print("Success login")
else:
print("Account not exist, input new one")
請注意,如果您將所有帳戶都放在一個字典中,這樣做會更好,因此您可以直接訪問它們:
user1 = {
'123': {'id':'0001', 'password':'a123', 'balance':0.00},
'456': {'id':'0002', 'password':'a456', 'balance':0.00},
'789': {'id':'0003', 'password':'a789', 'balance':0.00}
}
這樣,您就可以按名稱直接訪問每個帳戶,而不用在整個列表中搜索嘗試登錄的用戶。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.