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

Python随机数字分析程序求助:生成随机数并计算统计指标

修正Python随机数数字分析程序

你的代码核心问题是误用了input()函数,同时随机数范围和数据类型处理也存在问题,以下是修正后的完整代码及问题说明:

问题点说明

  • 错误引入用户输入:原代码中number = input(rand_number)会暂停程序等待用户输入,完全不符合“用随机数而非用户输入”的要求,应该直接将生成的随机数存入列表。
  • 随机数范围偏差:random.randrange(1,100)生成的是1到99的整数,若要包含100,需改为random.randint(1,100)(包含上下限)或random.randrange(1,101)(上限不包含,所以设为101)。
  • 数据类型错误:input()返回的是字符串类型,会导致sum()函数报错,且min()/max()会按字符串字典序比较,结果不符合数字逻辑。

修正后的代码

import random  # 建议将导入放在函数外,符合PEP8规范

def main():
    series_list = []

    for x in range(20):
        rand_number = random.randint(1, 100)  # 生成1-100的随机整数
        print(f"The random number {x + 1} : {rand_number}")  # 直接打印随机数
        series_list.append(rand_number)  # 将数字存入列表
        
    lowest = min(series_list)
    highest = max(series_list)
    total = sum(series_list)
    average = total / len(series_list)
    print_values(lowest, highest, total, average)

def print_values(lowest, highest, total, average):
    print(f"The lowest number in the list is: {lowest}")
    print(f"The highest number in the list is: {highest}")
    print(f"Total of the numbers in the list is: {total}")
    print(f"Average of the numbers in the list is: {average:.2f}")  # 格式化平均值保留两位小数

main()

额外优化说明

  • 将import random移到函数外部,符合Python代码规范(PEP8),避免每次调用main()都重复导入模块。
  • 使用f-string格式化输出,代码更简洁易读。
  • 对平均值做了格式化处理,保留两位小数,结果更直观。

内容的提问来源于stack exchange,提问作者M Kavanaugh Junice

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 16:32:33