python如果语句评估具有多个值

Cal*_*000 2 python

我不确定为什么,但是当我执行这段代码时没有任何反应.

while (True) :

    choice = str(input("Do you want to draw a spirograph? (Y/N) "))

    if choice == 'n' or 'N' :
        break

    elif choice == 'y' or 'Y' :    

       <CODE>

    else :
        print("Please enter a valid command.")
        choice = input("Do you want to draw a spirograph? (Y/N)")           
Run Code Online (Sandbox Code Playgroud)

mu *_*u 無 10

它不起作用,因为'N'文字总是True在你的if陈述中评估.

您的if条件当前代表if choice == 'n' or 'N' :,相当于if (choice == 'n') or ('N'),True无论变量的值如何,它总是会进行求值choice,因为文字'N'始终求值为True.

而是使用以下之一

  • if choice == 'n' or choice == 'N' :
  • if choice in 'nN' :
  • if choice in ('n', 'N') :

你的elif街区也是如此.您可以在此处阅读有关真值测试的更多信息.


Nic*_*sso 5

这个表达式没有达到你想要的效果:

choice == 'n' or 'N'
Run Code Online (Sandbox Code Playgroud)

其解释如下:

(choice == 'n') or 'N'
Run Code Online (Sandbox Code Playgroud)

您可能想尝试这个:

choice in 'nN'
Run Code Online (Sandbox Code Playgroud)