python学习Day10天:列表进阶 + 内置函数 + 代码简化

第10天的目标是独立写程序,核心是把前几天的碎片知识织成一张网


第一步:逻辑拆解(算法思维)

在动笔写 Python 之前,我们要先在大脑里模拟一下电脑是怎么工作的。

1. 如何求平均值?

(1)人类做法:把所有数字加起来,数数有几个数字,然后一除。

(2)电脑做法:

①找个篮子(变量 total),初始放个 0。

②用 for 循环把列表里的数字一个个拿出来,丢进篮子累加。

③用 len() 函数数出列表长度。

④相除得到结果。

2. 如何求最大值?(打擂台法)

(1)核心思想:之前我提及到过,这个就像是"逐一比较"。

(2)电脑做法:

①设 max_val 等于列表的第一个数。

② 用 for 循环从第二个数开始比。

③如果 (if) 现在的数字比"擂主"大,那它就变成新的"擂主"。

④循环结束,剩下的最后那个"擂主"就是最大值。


第二步:代码实现

我们将这两个逻辑封(之前提及到的def函数)装进函数里。

定义一个大函数,用来分析数据

def analyze_data(num_list): #使用def函数,对代码进行命名:analyze_data(num_list)
注: 这里代码就是对数据data中的值进行分析,其中数据data的名字叫做"num_list";分析内容包括两个部分:平均值与最大值

--- 第一部分:求平均值 ---

total = 0 # 初始化:准备一个变量来存总和,初始为0
for i in num_list: # 循环:把列表里的每个数字i 依次拿出来
total = total + i # 累加:把拿出来的 i 加到之前的总和里,注意for指令的空格
count = len(num_list) # 计数:算出列表里一共有多少个数字
avg = total / count # 计算:总和除以个数,得到平均值

--- 第二部分:求最大值 ---

max_val = num_list[0] #初始化: 设擂主,默认列表里的第一个数字目前最大
for i in num_list: # 循环:再次遍历列表,让每个数字都来比一比
if i > max_val: # 判断:如果当前的数字 i比擂主 max_val 还要大
max_val = n # 替换:就把这个更大的数字i 赋值给 max_val

return avg, max_val # 出厂:把算好的平均值和最大值一起送出去,注意这个位置

***注:*num_list[0] 中0,并不是数字0,前面len函数有提及到,指的是data中的数值位置

这个return函数,也是昨天提及到的调用函数

--- 第三部分:实际测试 ---

scores = [85, 92, 78, 90, 88, 95, 70] # 数据:准备一组测试用的数据

调用函数:把 scores 丢进函数,并用两个变量接收结果

average_result, max_result = analyze_data(scores)

print(f"平均分是:{average_result}") # 打印:显示算出来的平均值
print(f"最高分是:{max_result}") # 打印:显示算出来的最大值

注: scores可以看做数据的名称,其实在python运行中,它就是data(num_list)中的num_list;调用函数就是最开始,我们用def函数给代码取得名字"def analyze_data"包括平均值与最大值(return avg, max_val)。


第三步:小白必看的重点解析

需要注意的一些事项

  1. 缩进是灵魂

在 def 下面的代码必须缩进(通常是 4 个空格)。在 for 下面的代码要进一步缩进。如果缩进乱了,Python 会报错或者逻辑出错。

  1. return 的作用

return 就像是工厂的出口。如果没有它,函数算完就丢了,外面的变量(比如 result_avg)就接不到这个值。

  1. 变量命名

上述代码用num_list 作为参数名,这样一眼就能看出这个函数需要传入一个"数字列表"。

第四步:今日练习建议

• 挑战练习:再写一个函数 get_min(num_list),找出这组数据里的最小值。

• 进阶思考:如果你的 my_scores 是一个空的列表 [],运行上面的代码会发生什么?

提示:len() 会变成 0,除以 0 会报错

实验记录:

相关推荐
eastyuxiao1 小时前
OpenClaw 自动处理核心逻辑
开发语言·人工智能
eastyuxiao1 小时前
影响 OpenClaw 自动处理效率的核心因素
开发语言·人工智能
啧不应该啊1 小时前
Day1 python与c宏观区别
c语言·开发语言
时空系1 小时前
第13篇:综合实战——制作我的小游戏 python中文编程
开发语言·python·ai编程
XiYang-DING2 小时前
【Java EE】CAS(Compare And Swap)
java·开发语言·java-ee
OneT1me2 小时前
CVE-2026-31431 的C语言版本
c语言·开发语言·安全威胁分析
Li emily2 小时前
港股api接入指南:实时行情与历史数据获取
python·api·fastapi
AI技术增长2 小时前
Pytorch图像去噪实战(十三):DDIM加速扩散模型采样,让去噪从1000步降到50步
人工智能·pytorch·python
刀法如飞2 小时前
Python列表去重:从新手三连到高阶特技,20种解法全收录
python·算法·编程语言