描述
将用户输入的多个数值(以输入为空结束)存放至列表中,并完成以下统计计算: 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=','
。