描述
将用户输入的多个数值(以输入为空结束)存放至列表中,并完成以下统计计算: 1、计算所有数的最大值,最小值,平均值; 2、计算中位数,中位数:在一个有序数列中位于中件位置的数,若数据个数为偶数时,中位数为中间两个数值的平均值,保持两位小数精度。
样例
输入
5.28 9.98 64.58 14.97 39.23 33.23 9.64 47.82 11.19 78.73
输出
最大值:78.73,最小值:5.28,平均值:31.46,中位数:24.10
代码:
lst = []
s = input().split(' ')
for x in s:lst.append(float(x))
length = len(lst)
max_num = max(lst)
min_num = min(lst)
avg_num = sum(lst) / length
lst.sort()
if length % 2 == 0:mid_num = (lst[length // 2 - 1] + lst[length // 2]) / 2
else:mid_num = lst[length // 2]
print(f"最大值:{max_num}",end=',')
print(f"最小值:{min_num}",end=',')
print("平均值:%.2f" % avg_num,end=',')
print("中位数:%.2f" % mid_num,end='')
# 法二
numbers = []
while True:user_input = input("请输入一个数值(输入为空结束):")if user_input == "":breaknumber = float(user_input)numbers.append(number)# 计算最大值、最小值和平均值
max_value = max(numbers)
min_value = min(numbers)
average = sum(numbers) / len(numbers)# 计算中位数
sorted_numbers = sorted(numbers)
median = 0
if len(sorted_numbers) % 2 == 0: # 数据个数为偶数mid_right = len(sorted_numbers) // 2mid_left = mid_right - 1median = (sorted_numbers[mid_left] + sorted_numbers[mid_right]) / 2
else: # 数据个数为奇数mid = len(sorted_numbers) // 2median = sorted_numbers[mid]# 打印结果
print("最大值:", max_value)
print("最小值:", min_value)
print("平均值:", '{:.2f}'.format(average))
print("中位数:", '{:.2f}'.format(median))
代码解析:
lst = [] s = input().split(' ') for x in s:lst.append(float(x))
- 创建空列表
lst用于存储数值。- 使用
input()函数获取用户输入,通过split(' ')将输入字符串按空格切分成多个部分,并将它们存储在列表s中。- 遍历列表
s,将每个元素转换为浮点型数据,并添加到lst列表中。length = len(lst) max_num = max(lst) min_num = min(lst) avg_num = sum(lst) / length
- 使用
len(lst)获取列表lst的长度,并将其存储在变量length中。- 使用
max(lst)和min(lst)函数分别找出列表lst中的最大值和最小值,并将它们分别存储在变量max_num和min_num中。- 使用
sum(lst)计算列表lst中所有数的总和,除以length得到平均值,并将其存储在变量avg_num中。lst.sort() if length % 2 == 0:mid_num = (lst[length // 2 - 1] + lst[length // 2]) / 2 else:mid_num = lst[length // 2]
- 使用
sort()方法对lst列表进行排序,将其按升序排列。- 使用
length % 2 == 0判断列表长度是否为偶数。如果是偶数,执行if语句块。- 如果列表长度是偶数,计算中位数。将列表中位于
length // 2 - 1和length // 2位置上的两个数相加,并除以2得到中位数;将结果存储在变量mid_num中。- 如果列表长度是奇数,中位数直接取
lst[length // 2]的值,并将其存储在变量mid_num中。print(f"最大值:{max_num}",end=',') print(f"最小值:{min_num}",end=',') print("平均值:%.2f" % avg_num,end=',') print("中位数:%.2f" % mid_num,end='')
- 使用格式化字符串打印最大值、最小值、平均值和中位数。
- 通过
f"最大值:{max_num}"格式打印最大值,并使用end=','指定末尾不换行。- 类似地,打印最小值、平均值和中位数,并使用逗号作为分隔符。
- 在最后一个
end=','。