首页 > 解决方案 > 为什么每次输入后不添加变量?

问题描述

代码设计为每次给它的变量加1,但最终的结果,所有的变量还是0。

我是新手,只是测试一些基本代码,它应该是一个投票系统。

while True:
 A=0
 B=0
 C=0
 vote=input("A, B or C")

 if vote == 'A':
     A + 1
 elif vote == 'B':
     B + 1
 elif vote == 'C':
     C + 1
 elif vote == 'end':
     print ("A got",A,"votes, B got",B,"votes, C got",C,"votes")
 else:
     print ("That's not an option. Try again and Vote A,B or C")

当我运行代码时:

A, B or C?A

A, B or C?B

A, B or C?C

A, B or C?A

A, B or C?B

A, B or C?end

A got 0 votes, B got 0 votes, C got 0 votes

我预计输出是:

"A got 2 votes,B got 2 votes, C got 1 votes"

任何帮助将不胜感激 :)

标签: pythonloops

解决方案


您需要分配添加的结果:

if vote == "A":
  A = A + 1
elif vote == "B":
  B = B + 1
elif vote == "C":
  C = C + 1

您还可以使用复合赋值运算符:

if vote == "A":
  A += 1
elif vote == "B":
  B += 1
elif vote == "C":
  c += 1

而且您需要在循环之外声明它们,否则您每次都在重新分配它们。

完整代码:

A = 0
B = 0
C = 0
while True:
 vote = input("A, B or C? ")

 if vote == "A":
     A += 1
 elif vote == "B":
     B += 1
 elif vote == "C":
     C += 1
 elif vote == "end":
     print ("A got", A, "votes, B got", B, "votes, C got", C, "votes")
     break
 else:
     print ("That's not an option. Try again and Vote A,B or C")

输出:

A, B or C? A
A, B or C? B
A, B or C? C
A, B or C? A
A, B or C? B
A, B or C? end
A got  2  votes, B got  2  votes, C got  1  votes

推荐阅读