6个月Python学习计划 Day 11 - 列表推导式、内置函数进阶、模块封装实战
第一周
Day 1 - Python 基础入门 & 开发环境搭建
Day 2 - 条件判断、用户输入、格式化输出
Day 3 - 循环语句 + range 函数
Day 4 - 列表 & 元组基础
Day 5 - 字典(dict)与集合(set)
Day 6 - 综合实战:学生信息管理系统
Day 7 - 复盘 + 测试日
第二周
Day 8 - Python 函数基础
Day 9 - 函数进阶用法
Day 10 - 模块与标准库入门
🔹 一、列表推导式(List Comprehension)
列表推导式是 Python 提供的一种简洁写法,用来生成新的列表。
✅ 基本语法:
[表达式 for 变量 in 可迭代对象 if 条件]
🎯 示例:
# 生成 0~9 的平方
squares = [x**2 for x in range(10)]
print(squares) # [0, 1, 4, ..., 81]# 过滤出偶数
evens = [x for x in range(10) if x % 2 == 0]
print(evens) # [0, 2, 4, 6, 8]
🔹 二、常用内置函数(Built-in Functions)
Python 有很多强大的内置函数,不用导入模块就能使用。
函数 | 功能 |
---|---|
len() | 返回长度 |
sum() | 求和 |
max() / min() | 最大/最小值 |
sorted() | 排序(不改变原列表) |
zip() | 打包多个序列 |
enumerate() | 遍历时返回索引和值 |
🎯 示例:
nums = [3, 1, 5, 2]print(len(nums)) # 4
print(sum(nums)) # 11
print(sorted(nums)) # [1, 2, 3, 5]
print(list(enumerate(nums))) # [(0, 3), (1, 1), ...]
🔹 三、自定义模块封装实战
将常用函数封装进一个模块,提升代码复用性和结构清晰度。
✅ 示例:my_utils.py
def reverse_str(s):return s[::-1]def is_prime(n):if n < 2:return Falsefor i in range(2, int(n**0.5)+1):if n % i == 0:return Falsereturn True
✅ 主程序调用:
from my_utils import reverse_str, is_primeprint(reverse_str("hello")) # "olleh"
print(is_prime(17)) # True
📝 今日练习任务
-
使用 列表推导式:
• 生成 1~100 中所有能被 3 整除的数字列表
• 将字符串列表 [‘apple’, ‘banana’, ‘pear’] 变为大写字母# 找出 1~100 中能被 3 整除的数 div_by_3 = [x for x in range(1, 101) if x % 3 == 0] print("能被3整除的数:", div_by_3)# 将水果名列表转为大写 fruits = ['apple', 'banana', 'pear'] upper_fruits = [fruit.upper() for fruit in fruits] print("大写水果名:", upper_fruits)
输出结果:
能被3整除的数: [3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99] 大写水果名: ['APPLE', 'BANANA', 'PEAR']
-
使用内置函数:
• 统计 [95, 87, 76, 88, 100] 的平均成绩
• 使用 enumerate() 打印带索引的课程名 [‘语文’, ‘数学’, ‘英语’]# 计算平均成绩 scores = [95, 87, 76, 88, 100] average = sum(scores) / len(scores) print("平均成绩:", average)# 使用 enumerate 打印课程名 subjects = ['语文', '数学', '英语'] for index, name in enumerate(subjects, start=1):print(f"课程 {index}:{name}")
输出结果:
平均成绩: 89.2 课程 1:语文 课程 2:数学 课程 3:英语
-
模块封装练习:
• 将之前的 is_even、circle_area、reverse_str 封装进模块 my_math.py
• 在主程序中测试导入并调用# 文件名:my_math.pydef is_even(num):return num % 2 == 0def circle_area(radius):return 3.14 * radius ** 2def reverse_str(s):return s[::-1]
# 主程序调用 my_math 模块 from my_math import is_even, circle_area, reverse_strprint("6 是偶数吗?", is_even(6)) print("半径为 5 的圆面积:", circle_area(5)) print("字符串反转:", reverse_str("Python"))
输出结果:
6 是偶数吗? True 半径为 5 的圆面积: 78.5 字符串反转: nohtyP
✅ 今日小结
知识点 | 作用 |
---|---|
列表推导式 | 快速生成新列表 |
内置函数 | 提高开发效率 |
模块封装 | 提升代码复用性、可维护性 |