首页 > 解决方案 > 如何使用 If 获得我想要的输出?

问题描述

嗨,我是 python 的新手,我想做一个内向/外向的测验,当我尝试选择外向的选项时,它不会对任何外向的答案 +1。相反,它只会对内向的 +1每次都回答。那么我需要做什么才能让这个工作呢?

extro = 0
intro = 0

print("1.------------------? : ")
d1a = input("A) ------------------.\n"
            "B) ------------------.\n"
            "[A/B]? : ")
if d1a == "B" or "b":
    intro = intro + 1
elif d1a == "A" or "a":
    extro = extro + 1


print("2.------------------? : ")
d2a = input("A) ------------------.\n"
            "B) ------------------.\n"
            "[A/B]? : ")
if d2a == "B" or "b":
    intro = intro + 1
elif d2a == "A" or "a":
    extro = extro + 1


print("3.------------------? : ")
d3a = input("A) ------------------.\n"
            "B) ------------------.\n"
            "[A/B]? : ")
if d3a == "B" or "b":
    intro = intro + 1
elif d3a == "A" or "a":
    extro = extro + 1



print("4.------------------? : ")
d4a = input("A) ------------------.\n"
            "B) ------------------.\n"
            "[A/B]? : ")
if d4a == "B" or "b":
    intro = intro + 1
elif d4a == "A" or "a":
    extro = extro + 1


print("5.------------------? : ")
d5a = input("A) ------------------.\n"
            "B) ------------------.\n"
            "[A/B]? : ")
if d5a == "B" or "b":
    intro = intro + 1
elif d5a == "A" or "a":
    extro = extro + 1


print("6.------------------? : ")
d6a = input("A) ------------------.\n"
            "B) ------------------.\n"
            "[A/B]? : ")
if d6a == "B" or "b":
    intro = intro + 1
elif d6a == "A" or "a":
    extro = extro + 1


if intro >= int(5):
    print ("you are an introvert")    

if extro >= int(5):
    print ("you are an extrovert")

print("you are an ambivert")



print("Thank you.")

试着测试一下,看看我在说什么

标签: pythonpython-3.x

解决方案


在 python 中,你不能在多个变量或字符上使用 '==',除非你单独执行它们。

现在当你写:

if d1a == "B" or "b":
    intro = intro + 1

Python 认为你在写

if(d1a == "B") or ("b")

这将永远是真的,因为“b”总是它自己。

因此,要解决此问题,您将需要编写

if d1a == "B" or d1a == "b":
    intro = intro + 1
elif d1a == "A" or d1a == "a":
  extro = extro + 1

为您的所有输入执行此操作,您应该会很好。


推荐阅读