繁体   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