【问题标题】:Counter is adding an extra digit计数器正在添加一个额外的数字
【发布时间】:2013-11-22 05:58:05
【问题描述】:

我正在制作一个用户掷骰子的游戏,这很好用,然后我计算每个数字在我的 countVals 函数中被掷了多少次,但是它计数不正确,它会减去 1 个数字。

如果掷骰子 5,1,3,1,5

计数的预期结果是 2,0,1,0,2 因为它计算每个数字出现了多少次

目前的实际结果是 0,2,0,1,0,2

代码如下

for x in range (6):
    #counter = dice.count(x)
    print(dice.count(x)

【问题讨论】:

  • 1.如果您希望结果包含 1 到 6,请使用 randint(1, 6)randrange(1, 6) 给出 1 到 6 个结果(不包括 6 个)。 2. 你的 range(6) 使 x 从 0 到 5 包含在内 - 这不是你想要的。

标签: python counter digit


【解决方案1】:
for x in range (6):

试试这个:

for x in range (1, 7):

【讨论】:

    【解决方案2】:

    您的范围似乎已关闭(它们需要是半开区间)。

      randrange(1, 7)       # die roll is one of {1,2,3,4,5,6}
    

    计数也应该循环:

      for x in range(1, 7):
          print(dice.count(x))
    

    【讨论】:

      【解决方案3】:

      将范围更改为:

      random.randrange(1,7,1)
      

      记住参数是:

      randrange(start, end, step)
      

      它返回一个介于 [0, end-1] 之间的值并带有特定的步骤。

      【讨论】:

      • 最好使用randint,它包括两个端点。
      猜你喜欢
      • 1970-01-01
      • 2011-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-18
      • 1970-01-01
      • 1970-01-01
      • 2021-11-30
      相关资源
      最近更新 更多