天天看點

for、while循環

三、循環

之前寫的猜年齡小遊戲隻能猜一次,現在希望添加功能,讓使用者一直猜,直到猜對為止,怎麼做呢?

age = 18
while True:
guess_age = int(input("請輸入猜測的年齡>>>"))
if guess_age == age:
print("猜對了")
elif guess_age > age:
print("猜大了")
else:
print("猜小了")      

上述代碼實作了使用者多次猜測的需求,但是卻引入了一個bug,即使使用者猜對了,也會提示使用者繼續

猜,這顯然不合理,我們希望使用者猜對以後,遊戲就結束了。

age = 18
while True:
guess_age = int(input("請輸入猜測的年齡>>>"))
if guess_age == age:
print("猜對了")
break # 終止循環
elif guess_age > age:
print("猜大了")
else:
print("猜小了")      

break 的作用就是完全終止整個循環,我們判斷使用者輸入正确,就直接使用 break 結束循環。

通過 while 循環,列印0-100之間所有的整數

i = 0
while i < 100:
i += 1
print(i)      

加一個需求,如果數字能被 3 整數,就不列印,怎麼做

i = 0
while i < 100:
i += 1
if i % 3 == 0:
continue # 跳過本次循環,不再執行後面的代碼
print(i)      

continue 的作用就是跳過本次循環,不再執行後面的代碼。

while i < 100:
i += 1
if i % 3 == 0:
continue # 跳過本次循環,不再執行後面的代碼
print(i)
else:
print("循環結束")      

可以再 while 循環後面加一個首尾的語句,在沒有 break 或代碼報錯的前提下,else中的内容會在循環

結束後執行。

for 循環用于疊代序列(清單、元組、字典、集合、字元串)

for i in "hello world":
print(i)      

for 循環也可以使用 break 語句和 continue 語句。

如需循環指定的次數,可以使用 range 函數,range 函數傳回一個數字序列,預設情況下從 0 開始,并

預設,每次循環遞增1,直到指定的數字結束。

for i in range(5):
print(i)
print("-----------------------")
# 可以指定從幾開始
for i in range(2, 7): # 左閉右開區間
print(i)
print("-----------------------")
# 可以指定步長,也就是指定每次循環增加幾
for i in range(2, 17, 3):
print(i)      
# 程式中預設使用者名和密碼
u_name = "fanmao"
u_pwd = "123456"
# 使用者最多有三次登入機會,循環三次
for i in range(3):
# 接受使用者的輸入
name_inp = input("請輸入使用者名>>>")
pwd_inp = input("請輸入密碼>>>")
if name_inp == u_name and pwd_inp == u_pwd:
print("登入成功,歡迎來到凡貓的世界")
break
else:
if i < 2:
print("登入失敗,請重試")
else:
print("賬戶已鎖定")