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
相关产品推荐
相关产品推荐

