gpt4 book ai didi

python - 骰子计数器错误

转载 作者:行者123 更新时间:2023-12-01 04:48:26 24 4
gpt4 key购买 nike

我正在用 python 2.7 编写一个程序,该程序将掷骰子,然后计算每个数字掷了多少次。但似乎无法解决这个问题。

它返回:回溯(最近一次调用最后一次): 文件“DiceRoller.py”,第 16 行,位于 计数器[s] += 1关键错误:3 从随机导入 randint

while True:
z = raw_input("How many sides should the dice(s) have?\n> ")
i = 0
x = raw_input("How many dices do you want?\n> ")
dice = {}
while i <= int(x):

dice[i] = randint(1,int(z))
i += 1

counter = {}
for p, s in dice.iteritems():
counter[s] += 1

print counter

raw_input("Return to restart.")

最佳答案

您将每个计数器设置为值+1:

counter[s] =+ 1
# ^^^

您没有在那里使用+=; Python 将其视为:

counter[s] = (+1)

交换+=:

counter[s] += 1

这将引发异常,因为 key s 不会第一次出现;在这种情况下,使用 counter.get() 获取默认值:

counter[s] = counter.get(s, 0) + 1

或使用 collections.defaultdict() object而不是普通的字典:

from collections import defaultdict

counter = defaultdict(int)
for s in dice.itervalues():
counter[s] =+ 1

或使用 collections.Counter() object进行计数:

from collections import Counter

counter = Counter(dice.itervalues())

关于python - 骰子计数器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28917642/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com