嗨,我是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.")
问题来源: stackoverflow
在python中,您不能对多个变量或字符执行'==',除非您分别进行处理。
现在,当您编写时:
if d1a == "B" or "b":
intro = intro + 1
Python以为你在写
if(d1a == "B") or ("b")
由于“ b”始终是自身,因此它将始终为True。
因此,要解决此问题,您将需要编写
if d1a == "B" or d1a == "b":
intro = intro + 1
elif d1a == "A" or d1a == "a":
extro = extro + 1
回答来源: stackoverflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。