比较两个输入值(投票系统)python


name1 = {}
name2 = {}
result = {}
while True:
response = input("who do you want to vote on?")
if name1:
name1 += 1
if name2:
name2 += 1
if response == 'finished':
print(result, "has won")
break

我目前正在尝试将数值计算在一起,并在";成品";已经输入。我试图使用大于>和小于<的值,但后来我收到一个错误,说输入是int(数字(。

以下是您的代码的修改版本,我认为它解决了您试图进行的问题

names = ['foo', 'bar']
counts = [0, 0]
while True:
response = input("who do you want to vote on? ")
if response == names[0]:
counts[0] += 1
elif response == names[1]:
counts[1] += 1

if response == 'finished':
if counts[0] == counts[1]:
print('tie')
elif counts[0] > counts[1]:
print(names[0], 'has won')
else:
print(names[1], 'has won')
break

运行的几个示例

who do you want to vote on? foo
who do you want to vote on? foo
who do you want to vote on? bar
who do you want to vote on? finished
foo has won

who do you want to vote on? foo
who do you want to vote on? bar
who do you want to vote on? finished
tie

这里有一个使用字典存储计数的解决方案:

names={'name1':0,'name2':0}
while True:
response = input("who do you want to vote on?")
if response == 'finished':
if len(set(names.values()))==1:
print('Both candidates are tied.')
break
print(max(names, key=names.get), "has won.")
break
try:
names[response]+=1
except KeyError:
print(f"{response} is no candidate.")

样本输出:

who do you want to vote on?name1
who do you want to vote on?name2
who do you want to vote on?finished
Both players are tied.

或者:

who do you want to vote on?name1
who do you want to vote on?finished
name1 has won.

最新更新