题解 | 牛牛的数学作业
牛牛的数学作业
https://www.nowcoder.com/practice/6f5d239c34a7429cb325a3d836abc342
真nm难这个题目,我都想放弃了救命SOS:
细节问题
- max 和 min 是 Python 内置函数,你把它赋值成了变量python✅ 改成 max_val、min_val 或 mx、mn。
- 极差和方差之间要有空格你写的是:python题目要求中间用空格隔开
import sys
T=int(input())
for i in range(T):
n=int(input())
arr = list(map(int, input().split()))
valmax=max(arr)
valmin=min(arr)
val=valmax-valmin
mean=sum(arr)/n
variance=sum((x-mean)**2 for x in arr)/n
print( f"{val} {variance:.3f}")
import sys
T = int(input())
for _ in range(T):
n = int(input())
arr = list(map(int, input().split())) # ✅ 每次重新赋值
max_val = max(arr)
min_val = min(arr)
range_val = max_val - min_val
mean = sum(arr) / n
variance = sum((x - mean) ** 2 for x in arr) / n
print(f"{range_val} {variance:.3f}")
for _ in range(T): 循环运算T次
n = int(input()) 说明要n个数字
arr = list(map(int, input().split())) # ✅ 每次重新赋值 非常重要 因为每次都是循环内运算,如果在外面赋值 比如dp=【】在循环内用append就会导致叠加。最后导致所用循环的数字都在列表里计算了
max_val = max(arr) 内置函数:列表最大值
min_val = min(arr)
range_val = max_val - min_val
mean = sum(arr) / n 内置函数 列表数字和
variance = sum((x - mean) ** 2 for x in arr) / n
这是Python的“生成器表达式”!
# 普通人的写法:先建空列表,再用for循环一个个加进去
squares = []
for x in arr:
square = (x - mean) ** 2
squares.append(square)
variance = sum(squares) / n
# 进阶写法:用列表推导式 squares = [(x - mean) ** 2 for x in arr] variance = sum(squares) / n
终极简洁:生成器表达式
variance = sum((x - mean) ** 2 for x in arr) / n
print(f"{range_val} {variance:.3f}")
| 告诉Python:这是个格式化字符串 |
| 要输出的格式模板 |
| 把变量
的值放在这里 |
中间的空格 | 原样输出的空格 |
| 把变量
的值 格式化成保留3位小数的浮点数 |
查看2道真题和解析
