python學習——while True的用法


在學習過程中,經常能遇到采用while True的用法。下面以一個例子進行說明:

建立一個用戶登錄系統,用戶輸入用戶名和密碼,如果正確就可以進入系統。

1、我自己最開始的寫法:

d = {} #數據庫字典,所有用戶的用戶名密碼存儲在此

name = input("請輸入您的用戶名:")
if name in d:
password = input("請輸入您的密碼")
if d[name] == password:
print('進入系統')
else:
print('您輸入的密碼錯誤,請重新輸入')
else:
print('您輸入的用戶名不正確,請重新輸入')

這個自己寫的程序邏輯上貌似是對的:
——先讓用戶輸入用戶名,如果存在該用戶名,就繼續讓用戶輸入密碼,如果密碼正確就進入系統。如果密碼不正確就重新輸入。
——如果不存在該用戶名,提示“您輸入的用戶名不正確,請重新輸入”

但是在實際運行過程中,如果用戶輸入的用戶名和密碼都正確,那自然是沒有問題的。但是如果有一個輸入不正確,那系統只會顯示“您輸入的用戶名不正確,請重新輸入”或“您輸入的密碼錯誤,請重新輸入”。也就是說,如果出現錯誤,沒有返回到原來的地方,請求繼續輸入。

2、采用while True循環語句:

采用該語句的核心思想是如果出現錯誤的話,可以繼續循環。

d = {}

while Ture:
name = input('請輸入您的用戶名:')
if name in d:
break
else:
print('您輸入的用戶名不存在,請重新輸入')
continue

while True:
password = input('請輸入您的密碼:')
if d[name] == password:
print('進入系統')
break
else:
print('您輸入的密碼不正確,請重新輸入')
continue

以上程序就可以達到所需目的:在輸入用戶名或密碼錯誤的情況下返回到開始部分,請求繼續輸入。

while True 語句中一定要有結束該循環的break語句,否則會一直循環下去的。

當然,我們遇見過如果密碼錯誤的話,提示您還有幾次輸入密碼的機會。可以這樣實現:

count = 5
while count:
password = input('請輸入您的密碼:')
if d[name] == password:
print('進入系統')
break
else:
count -= 1
print('您輸入的密碼不正確,還有{}次輸入機會'.format(count))
continue
---------------------
作者:geerniya
來源:CSDN
原文:https://blog.csdn.net/geerniya/article/details/77524173
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM