运行后如果打印不显示任何内容的Python

时间:2020-07-13 20:48:02

标签: python

在用户键入其中一个后,我希望这段代码向我显示这两个answears中的一个,但是在我键入yes或no之后,我什么也没有得到回报??

while True:
    answear = input("text to be added")

    if answear in ["yes", "no", "Yes", "No"]:
        break

if answear == ["yes", "Yes"]:
    print("answear 1")

elif answear == ["no", "No"]:
    print("answear 2")

谢谢

3 个答案:

答案 0 :(得分:1)

您正在将字符串与列表["yes","Yes"]进行比较,该列表将始终评估为false,并且由于您未指定else条件,因此您不会得到任何输出。

您可以使用in一词来解决此问题,该词可用于评估列表中的各个元素:

if answear in ["yes", "Yes"]:
    print("answear 1")

elif answear in ["no", "No"]:
    print("answear 2")

答案 1 :(得分:-1)

In [61]: while True:
    ...:     answear = input("text to be added")
    ...:
    ...:     if answear.lower() in ["yes", "no"]:
    ...:         break
    ...:
    ...: if answear.lower() == "yes":
    ...:     print("answear 1")
    ...:
    ...: elif answear.lower() == "no":
    ...:     print("answear 2")

一个更好的方法是将answear转换为小写并检查

答案 2 :(得分:-2)

while循环后,您需要检查

if answear in ["Yes","yes"]:
    print('answer 1')

而不是检查是否相等answear == ["Yes", "yes"]