python - 为什么每次输入后不添加变量?
问题描述
代码设计为每次给它的变量加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"
任何帮助将不胜感激 :)
解决方案
您需要分配添加的结果:
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
推荐阅读
- java - 如何创建每 10 个正确问题提高一个级别的 FOR
- java - 我想在唯一的 post 键下访问 uid。我如何在 post 节点下访问该 post 密钥以访问 uid 并完成我的工作
- jquery - 拖放错误行为
- google-workspace - G Suite + 按域 Google Drive 中的类型计算文件数量
- javascript - 如何在以编程方式更改其值时触发选择上的更改事件
- python - AttributeError:image_converter 实例没有属性
- java - 使用 cte 和变量输入优化 SQL 查询
- laravel-5 - 在laravel中发送电子邮件传递名称
- assembly - 如何在 ARM Assembly 中找到 dword 中的第一个逻辑单元?
- python - keras - 关键字initial_state不理解