[英]I seem to be in a predicament where I cant get out of the loop
rainbow_list = ["Red", "Orange", "Yellow", "Green", "Blue", "indigo", "violet"]
color_tires = 0
color = input("enter a color of the rainbow: ")
while color_tires <= 4:
if color != rainbow_list:
color = input("enter a color of the rainbow: ")
color_tries =+ 1
else:
print("That is a correct color! ")
在您的代碼中有一些對您不利的事情,阻止它識別正確的答案並退出“while”循環。 首先,您在“color_tries”的拼寫中有一些拼寫錯誤(例如“color_tires”)。 所以這讓你失望了。 接下來,“if”塊中的變量“color_tries”被視為局部變量,因此實際上每次都被重置。 因此,從未達到“while”循環中的值比較,並且您一直停留在該循環中。 此外,“if”測試也總是錯誤的,因為它試圖將輸入的文本顏色值與顏色列表進行比較。 您想要做的是檢查輸入的顏色是否在(或不在)顏色列表中。 有了這個,我對你的程序做了一些調整,但仍然保持了游戲的精神。
rainbow_list = ["Red", "red", "Orange", "orange", "Yellow", "yellow", "Green", "green", "Blue", "blue", "Indigo", "indigo", "Violet", "violet"]
color = input("Enter a color of the rainbow: ")
color_tries = 0
while (1):
color_tries += 1
print('Tries: ', color_tries)
if color_tries > 4:
break
if color not in rainbow_list: # rainbow_list is a list so equality testing won't work - us "in" or "not in" testing
color = input("Enter a color of the rainbow: ")
else:
print("That is a correct color! ")
break
為了讓它更友好一點,我擴展了顏色列表,以防用戶完全用小寫字母輸入顏色值。 然后,我改進了“while”循環,使其在技術上永遠不會結束,直到達到“break”語句。 我還將嘗試的增量移到“if”語句上方,以便它影響稱為“color_tries”的全局變量。 然后,為了使“if”測試工作,我檢查輸入的顏色是否不在顏色列表中,如果是,則增加 color_tries 計數器。 如果達到嘗試的限制或猜到正確的顏色,程序將跳出“while”循環並完成。
請查看調整后的代碼。 我希望在您繼續創建程序和游戲時為您澄清事情。
問候。
#i wish i help you
rainbow_list = ["Red", "Orange", "Yellow", "Green", "Blue", "Indigo",
"Violet"]
color_tries = 0
while_loop = 0
while color_tries <= 4 and while_loop == 0:
color = input("enter a color of the rainbow: ")
for i in rainbow_list:
if i == color :
print("That is a correct color! ")
while_loop += 1
color_tries += 1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.