You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python字典值修改失败:循环更新骰子点数统计值无效

问题分析与修正

你的代码存在两个关键错误,导致无法正确统计骰子点数和的出现次数:

错误1:骰子点数生成范围错误

random.randrange(0,7)会生成0到6的整数,但标准骰子的点数是1-6,这会出现和为0、1的无效情况,这些值不在pairs字典的键中,直接跳过统计,同时也不符合真实掷骰子的逻辑。

错误2:字典值更新逻辑错误

内层循环里的k[v] +=1是完全错误的写法:

  • k是字典的键(比如2、3…12),v是对应的值(初始为0)
  • 你想用这个语句更新字典对应键的值,但k[v]是试图用v作为索引访问k,完全不符合字典的操作逻辑。而且根本没必要遍历字典,直接用summ作为键去更新pairs即可。

修正后的代码

import random

pairs = {2:0, 3:0, 4:0, 5:0, 6:0, 7:0, 8:0, 9:0, 10:0, 11:0, 12:0}

for _ in range(1001):
    # 生成1-6的标准骰子点数
    d1 = random.randrange(1, 7)
    d2 = random.randrange(1, 7)
    summ = d1 + d2
    # 直接用点数和作为键更新统计值,无需遍历字典
    pairs[summ] += 1

# 打印结果验证
for k, v in pairs.items():
    print(f"点数和{k}出现了{v}次")

内容的提问来源于stack exchange,提问作者Argishti89

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 07:44:16