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

Python骰子求和概率表格制作:如何实现同一行打印

解决同一行打印及骰子概率统计问题

先修正代码里的基础错误

你的代码存在几个影响运行的问题:

  • 未导入random库,运行会直接报错
  • 函数名用了sum,这是Python内置函数,会和变量名冲突
  • attempts函数里的rang是拼写错误,正确写法是range
  • 两个函数分开循环,导致次数和点数和分别换行输出,无法一一对应

修正后实现同一行打印+概率统计的代码

import random

total_rolls = int(input("How many times do you want to roll the dice: "))

# 初始化字典,统计2-12每个点数和的出现次数
sum_counts = {i: 0 for i in range(2, 13)}

# 打印表头
print(f"{'attempts':<15}{'sum of the dices':<20}{'probability (so far)'}")
print("-" * 50)

for attempt in range(1, total_rolls + 1):
    dice1 = random.randint(1, 6)
    dice2 = random.randint(1, 6)
    current_sum = dice1 + dice2
    sum_counts[current_sum] += 1
    # 计算当前点数和的累计概率
    current_prob = (sum_counts[current_sum] / attempt) * 100
    # 用格式化字符串对齐,一次性打印一行的三个内容
    print(f"{attempt:<15}{current_sum:<20}{current_prob:.2f}%")

# 打印最终各点数和的总概率
print("\n--- Final Probability Summary ---")
for s in range(2, 13):
    final_prob = (sum_counts[s] / total_rolls) * 100
    print(f"Sum {s}: {final_prob:.2f}%")

关键说明

  1. 同一行打印:使用Python格式化字符串(f-string),通过<15、<20这类格式符控制内容的对齐宽度,把次数、点数和、概率放在同一个print语句中,就能实现同一行输出。
  2. 概率统计逻辑:用字典预先存储2-12每个点数和的初始计数,每次掷骰子后更新对应和的计数,实时计算并打印累计概率;最后输出所有点数和的最终概率。
  3. 错误规避:替换了和内置函数重名的函数名,修正拼写错误,提前导入random库。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 19:22:53