Python投票系统变量无法累加求助:输入后变量未更新
修复你的Python投票系统问题
嘿,我来帮你搞定这个投票系统的bug!你的代码里有两个关键问题导致投票数一直是0,咱们一个个说清楚:
问题1:变量每次循环都会被重置为0
你把A=0、B=0、C=0放在了while True循环的内部,这意味着每次进入循环开头,这三个变量都会被重新设为0,之前投的票记录直接被清零了!得把这三个变量的初始化代码移到循环外面去,这样它们才能一直保存累计的投票数据。
问题2:累加操作没有实际修改变量值
你写的A + 1只是做了加法运算,但没有把运算结果赋值回A变量。正确的累加方式应该是用A += 1(或者等价的A = A + 1),这样才能让A的值真正加1,B和C的累加也需要同样修改。
修正后的完整代码:
# 先初始化投票数,放在循环外面,避免被反复重置 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(f"A got {A} votes, B got {B} votes, C got {C} votes") break # 加上break退出循环,不然打印后会继续等待输入 else: print("That's not an option. Try again and Vote A,B or C")
额外补充:
我在end分支里加了break语句,不然输入end打印完结果后,程序会继续循环等待输入,加上break就能正常退出程序啦。现在你再测试一下,就能得到你预期的投票统计结果了!
内容的提问来源于stack exchange,提问作者Josh Eaton
相关产品推荐
相关产品推荐

