当前位置: 首页 > ai >正文

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. 使用 列表推导式:
    • 生成 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']
    
  2. 使用内置函数:
    • 统计 [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:英语
    
  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
    

✅ 今日小结

知识点作用
列表推导式快速生成新列表
内置函数提高开发效率
模块封装提升代码复用性、可维护性
http://www.xdnf.cn/news/10350.html

相关文章:

  • 让编程更智能高效:探索Claude Code工具的强大功能
  • Qt源码分析:QDataStream
  • 多模态大语言模型arxiv论文略读(103)
  • 功能丰富的PDF处理免费软件推荐
  • 设计模式——命令设计模式(行为型)
  • while循环判断数字位数
  • Axure组件即拖即用:垂直折叠菜单(动态展开/收回交互)
  • day16 leetcode-hot100-31(链表10)
  • DAY40 训练和测试
  • Vue 核心技术与实战智慧商城项目Day08-10
  • 麦克风和电脑内播放声音实时识别转文字软件FunASR整合包V5下载
  • 关于langchain使用API加载model的方式
  • Java并发编程实战 Day 3:volatile关键字与内存可见性
  • C++学习-入门到精通【12】文件处理
  • 工作流引擎-09-XState 是一个 JavaScript 和 TypeScript 的状态管理库,它使用状态机和状态图来建模逻辑。
  • Hilbert曲线
  • 在Flutter中定义全局对象(如$http)而不需要import
  • vue3: baidusubway using typescript
  • MYOJ_4149:(洛谷P1002)[NOIP 2002 普及组] 过河卒(坐标型DP)
  • 在Mathematica中可视化Root和Log函数
  • 实现RabbitMQ多节点集群搭建
  • 前端框架进化史
  • Git仓库大文件清理指南
  • LangChain-结合GLM+SQL+函数调用实现数据库查询(二)
  • Spring如何实现组件扫描与@Component注解原理
  • vscode 连接远程服务器
  • Json详解
  • Spring Boot,注解,@RestController
  • <5>, Qt系统相关
  • 哈 希 表