我无法理解为什么我的其他声明不会被调用

时间:2016-11-10 15:13:41

标签: python python-3.x

在练习中,我建立了一个基本的投票计划,但我无法理解为什么我的"其他"语句永远不会被调用?

import random

vote = input("Please submit a vote for candA, candB or choose a third party: \n")

candA = "Person1"
candB = "Person2"
other = "A third party candidate"

if candA:
    print("Thankyou! Vote submitted!")
elif candB:
    print("Thankyou! Vote submitted!")
elif other:
    print("Thankyou! Vote submitted!")
else:
    print("You did not submit a vote!")

total_votes = random.choice([candA, candB, other])
amount = random.randint(1, 10)

print(total_votes + " won the election by " + str(amount) + " votes!")

提前谢谢

2 个答案:

答案 0 :(得分:1)

如果变量不同,则无或者''那么它被认为是真的。 当你打电话给`if candA" ,candA包含一个字符串" person1"这将导致真实。 您可以尝试以下方式:

if vote == candA:
    etc
elif vote == candB:
    etc
elif vote == candC:
    etc
else:
    etc

答案 1 :(得分:0)

您需要在candA上使用vote执行相等检查,并根据该代码运行您的代码。现在你说if string candA exists: do x,你需要说if vote is the same as candA: do x

要执行此计算,您可以使用==(请注意不是=保留用于分配,并会让您说if set string candA: do x始终为True),如此:

if vote == candA:
    print("Thankyou! Vote submitted!")
elif vote == candB:
   print("Thankyou! Vote submitted!")
elif vote == other:
    print("Thankyou! Vote submitted!")
else:
    print("You did not submit a vote!")

注意:

为了获得更好的结果,请使用.lower()投票和相关字符串忽略等式中的大小写。例如。 if vote.lower() == candA.lower():