我是新來的Python和我有一個問題關於使用如果內部語句while循環:蟒蛇:差的B/W多IFS和if-elif的,否則在一個while循環
的代碼是寫猜謎遊戲,直到您輸入的數字與生成的隨機整數相匹配。
示例代碼編寫如下:
import random
answer=int(random.uniform(1,10))
number=int(input("guess:"))
if number==answer:
print("correct!")
while(number!=answer):
if number > answer:
print("smaller!")
number=int(input("guess again"))
if number < answer:
print("bigger!")
number=int(input("guess again"))
if number == answer:
print("bingo!!")
break
和我得到的結果是:
的猜測:5小!再猜一次3更大!再猜一次4賓果!
,但是當我用如果 - elif的 - elif的或如果 - elif的,否則 while循環,而不是多個if的,在第一個猜測的情況下是內部錯誤和隨後的猜測(ES)正確,最後賓果!沒有顯示,例如:
import random
answer=int(random.uniform(1,10))
number=int(input("guess:"))
if number==answer:
print("correct!")
while(number!=answer):
if number > answer:
print("smaller!")
number=int(input("guess again"))
elif number < answer:
print("bigger!")
number=int(input("guess again"))
elif number == answer:
print("bingo!!")
break
結果變成了:
的猜測:5小!再猜一次3
如圖所示,經過最後的正確猜測,代碼剛剛停止,並且「賓果!!」沒有顯示。
任何人都可以幫助我理解爲什麼在使用多個if和if-elif-else/elif while while循環時出現這種差異? 非常感謝!
補充:我意識到我的問題最終是,我每次輸入一個新值後number
,從那裏的代碼將再次與新number
運行,當我使用多個if的,這怎麼不同或者if-elif-else。
你不能用',而(數量=答案!):',並期望測試'數== answer'裏面你循環 – PRMoureu
我意識到,但在多個if的第一種情況下,結果按我的預期工作(即賓果顯示出來),我想知道爲什麼是這種情況.... – XYZ1007