3152332682 发表于 2020-5-8 11:03:18

emmm,没错,又是我,我又有问题了

while True:
      
    answer = input("可以做我的女朋友嘛?")
    if answer == "可以" or "好啊" or "OK":
      print("哇~~终于成功了,劳资好累啊")
      break
    print("不能放弃,再来")
没错,这是一个错误的代码,我想问的是, 如何让if answer == "可以" or "好啊" or "OK":   输入任意一个答案,就可以执行 print("哇~~终于成功了,劳资好累啊"),就是有A,B,C,D,四个选项,选其中的任意一个都可以触发下一条指令,但是这四个以外的不行,列为大佬,救救孩子吧(从我的积分上看得出我是个菜鸟中的菜鸟)

qiuyouzhi 发表于 2020-5-8 11:05:27

不能偷懒,应该是anwser == "可以" or answer == "好啊" or answer == "OK"

老八秘制 发表于 2020-5-8 11:05:57

while True:
      
    answer = input("可以做我的女朋友嘛?")
    if answer == "可以" or "好啊" or "OK":
      print("哇~~终于成功了,劳资好累啊")
      break
    else:
      print("失败了o╥﹏╥o")
      break
    print("不能放弃,再来")

3152332682 发表于 2020-5-8 11:06:12

qiuyouzhi 发表于 2020-5-8 11:05
不能偷懒,应该是anwser == "可以" or answer == "好啊" or answer == "OK"

必须要有answer是吗?

qiuyouzhi 发表于 2020-5-8 11:06:33

3152332682 发表于 2020-5-8 11:06
必须要有answer是吗?

是的,Python没有那么智能。

Hoiste 发表于 2020-5-8 11:07:12

本帖最后由 Hoiste 于 2020-5-8 11:10 编辑

弄成列表就行了。连续的逻辑判断会导致后面的or不会和answer进行比较,也就是answer虽然不等于第一个,但是因为一个False的结果和一个有内容的字符创(有内容字符创判定为True)进行or判断就会是True,所以这个if条件必然会返回True的,要么弄长一点,每次都answer = XXX,要么就像这样用列表及成员操作
while True:
      
    answer = input("可以做我的女朋友嘛?")
    if answer in ["可以", "好啊", "OK"]:
      print("哇~~终于成功了,劳资好累啊")
      break
    print("不能放弃,再来")

sunrise085 发表于 2020-5-8 11:07:47

两种方式
lst=["可以" , "好啊" , "OK"]
while True:
    answer = input("可以做我的朋友嘛?")
    if answer in lst:#if answer=='可以' or answer=='好啊' or answer=='OK':
      print("舒服,好舒服")
      break
    print("我就不信了,再来")

3152332682 发表于 2020-5-8 11:08:37

老八秘制 发表于 2020-5-8 11:05


这位新手,你也错了{:5_99:}

3152332682 发表于 2020-5-8 11:09:28

qiuyouzhi 发表于 2020-5-8 11:06
是的,Python没有那么智能。

可以帮帮改一下吗?

3152332682 发表于 2020-5-8 11:11:25

Hoiste 发表于 2020-5-8 11:07
弄成列表就行了。

呐个,第四行[]这个的作用是啥来着?

nizitao 发表于 2020-5-8 15:43:53

3152332682 发表于 2020-5-8 11:11
呐个,第四行[]这个的作用是啥来着?

把这些东西放进列表里
页: [1]
查看完整版本: emmm,没错,又是我,我又有问题了