Python向列表录入数据后如何正确计算平均值与极差
代码问题修正
你当前代码存在3个核心错误,按优先级修正如下:
- 存入列表的输入值是字符串类型,
str.isdigit()仅判断字符串内容是否为数字,不会自动转换类型,后续sum()对字符串列表运算会直接报错,需要在追加到列表前转成整型:# 原错误写法 number_list.append(input_number) # 修正后 number_list.append(int(input_number)) - 平均值打印语句中直接用
+拼接字符串和数值,Python不支持不同类型直接拼接,把+改成逗号分隔参数即可:# 原错误写法 print("Here is the average:" + sum(number_list) / len(number_list)) # 修正后 print("平均值为:", sum(number_list) / len(number_list)) - 极差计算误用了
range()内置函数,range()是用来生成整数序列的工具,极差的计算逻辑是最大值减最小值,修正为:# 原错误写法 print("Here is the range:", range(number_list)) # 修正后 print("极差为:", max(number_list) - min(number_list))
完整可运行中文版本代码
x = 1 number_list = [] while x == 1: input_number = input("请输入一个整数:") if input_number.isdigit(): number_list.append(int(input_number)) else: print("请仅输入合法整数。") continueornot = input("是否需要继续添加数据?输入'Yes'继续,输入其他内容将退出:") if continueornot != 'Yes': print("最大值:", max(number_list)) print("最小值:", min(number_list)) print("数据总数:", len(number_list)) print("平均值:", sum(number_list) / len(number_list)) print("极差:", max(number_list) - min(number_list)) quit()
内容的提问来源于stack exchange,提问作者Anonymous
相关产品推荐
相关产品推荐

