题解 | 牛牛的数学作业

牛牛的数学作业

https://www.nowcoder.com/practice/6f5d239c34a7429cb325a3d836abc342

真nm难这个题目,我都想放弃了救命SOS:

细节问题

  1. max 和 min 是 Python 内置函数,你把它赋值成了变量python✅ 改成 max_val、min_val 或 mx、mn。
  2. 极差和方差之间要有空格你写的是: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}")

f

告诉Python:这是个格式化字符串

"{range_val} {variance:.3f}"

要输出的格式模板

{range_val}

把变量 

range_val

 的值放在这里

中间的空格

原样输出的空格

{variance:.3f}

把变量 

variance

 的值

格式化成保留3位小数的浮点数

全部评论
好细节
点赞 回复 分享
发布于 02-11 22:06 北京

相关推荐

喵_coding:年底缺人是短视频营造出来的 而且一般说的也很宽泛 不是特指后端
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务