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

抛硬币正反面占比计算代码异常求助:次数越多占比越低如何修复?

抛硬币占比统计错误修复

你的代码核心问题是统计次数的逻辑错了:你用throw.count("head")统计的是当前单次输入字符串里"head"的出现次数(比如输入"head"时只会得到1),而不是整个投掷记录列表里的正面总次数。随着投掷次数增加,这个固定的1除以越来越大的总次数,占比自然会越来越低,完全不符合统计需求。

修正后的代码如下:

throws = []
while True:
    throw = input("你抛了硬币,结果是?Head/Tail:").lower()  # 转小写避免大小写问题
    throws.append(throw)
    total_flips = len(throws)
    heads_count = throws.count("head")  # 统计列表中所有"head"的次数
    tails_count = throws.count("tail")  # 统计列表中所有"tail"的次数

    heads_percentage = (heads_count / total_flips) * 100
    tails_percentage = (tails_count / total_flips) * 100
    match throw:
        case "head":
            print(f"正面占比:{heads_percentage}%")
        case "tail":
            print(f"反面占比:{tails_percentage}%")

关键改动说明

  • 把单次输入的throw.count()改成列表throws.count(),这样才能统计所有投掷记录里的正面/反面总次数
  • 增加了.lower()处理输入,避免用户输入大写(比如"Head")导致统计失败
  • 输出文本改成更符合中文习惯的表述

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 12:55:06