簡體   English   中英

我似乎陷入了無法脫身的困境

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM