恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

Python第三天

  • 首页
  • 资讯中心
  • /
  • Python第三天

相关资讯

leetcode 1143最长公共子序列 2026/10/14 3:32:56
【共创稿事节】HarmonyOS 7 Agent 开发实战 02:Agent 工程脚手架与对话 UI 骨架 2026/10/14 3:32:56
RK3588、RK3576、RK3568、RK3566 核心板怎么选:先核对接口,再谈算力 2026/10/14 3:32:56

最新资讯

构建数学解题Agent:从LLM局限到工具调用与验证优先架构
C++类型转换详解:原理、实践与陷阱
B2B电商平台银联电子支付实战接入指南
Rabbit health check failed排查:从健康检查原理到连接配置修复
亲测2026最新10款免费降ai率工具(附工具优缺点对比图)
MySQL复合查询实战:JOIN、子查询与HAVING的正确打开方式

今日推荐

IBM Verify Identity Access 修复 22 个漏洞:两个 9.8 严重 RCE 无需认证
小区物业管理系统
小型超市仓库管理系统

本周热门

UE动画修改实战:从资产编辑到重定向与蒙太奇驱动
统计随机数生成器攻击下的KLJN安全密钥交换协议Matlab仿真
政务API安全治理:资产测绘、低代码编排与行标对标实践

本月精选

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证
2026 大模型集体涨价:用 Python 做企业 Token 成本测算与选型避坑(附配置)

Python第三天

发布时间:2026/10/14 3:32:56
Python第三天 函数语法骨架def 函数名(参数1, 参数2, ...):文档字符串可选说明函数作用函数体return 返回值 # 可选没有 return 则返回 None函数整体的解释┌──────────────────────────────────────────────────────┐│ 函数的四要素 │├──────────────────────────────────────────────────────┤│ 1. 函数名 → 怎么叫它见名知意snake_case ││ 2. 参数 → 输入可无 ││ 3. 函数体 → 干什么缩进代码块 ││ 4. 返回值 → 输出用 return可无 │└──────────────────────────────────────────────────────┘参数位置参数和关键字参数默认参数缺省参数*args和**kwargs不定长参数*args接收任意多个位置参数参数解读*args— 星号把调用时传进来的多个位置参数收集成一个元组args。my_sum(1,2,3,4)里args(1,2,3,4)。这样函数就能接收不确定个数的参数**kwargs接收任意多个关键字参数参数解读**kwargs— 双星号把多个keyvalue收集成一个字典kwargs。适合参数名不固定的场景如配置项调用时的参数解包需求已经有了一个列表[1,2,3]和一个字典{a:1}想直接把它们拆开当成参数传给函数而不是一个个手写。分析在调用函数时*把序列列表/元组拆成位置参数**把字典拆成关键字参数。注意这和解包赋值a, b [1, 2]不是一回事这里专指传参时解包。步骤新建代码/day03_unpack_args.py递归需求有些问题自己定义自己更自然比如n 的阶乘 n × (n-1) 的阶乘。这种函数内部调用自己就是递归。分析递归要满足三要素缺一不可结束条件终止条件最小的情况直接给结果不再递归否则无限循环。递推关系大问题拆成更小的同类问题调用自己。向结束条件递进每次递归都要让参数更接近基线否则永远到不了终止条件。第一个案例求5的阶乘第二个案例斐波那契数列# 1 1 第三个数开始是前两个数之和# 1 1 2 3 5 8 13 21 34 ...# 定义一个函数 求第n个斐波那契数列的数# 使用递归# 1.必须让递归有一个结束条件# 2.找规律调用自己(重点!!!!!)# 3.向结束条件逼近总结┌──────────────────────────────────────────────┐│ 递归三要素 ││ ① 基线条件最小情况直接返回 ││ ② 递推关系拆成更小的同类问题 ││ ③ 向基线收敛参数越来越接近基线 ││ 风险缺基线/不收敛 → 栈溢出 RecursionError │└──────────────────────────────────────────────┘作用域全局变量┌──────────────────────────────────────────────────┐│ 全局变量函数外部定义整个文件都能用 ││ 函数内想修改它必须加 global 声明 │└──────────────────────────────────────────────────┘nonlocal 关键字需求内层函数默认改不了外层嵌套变量。如果确实要改比如做计数器怎么办用nonlocal。分析nonlocal与global容易混区别如下关键字作用对象使用场景global文件顶层的全局变量在函数里改全局变量nonlocal外层非全局嵌套函数里的变量在更内层函数里改外层函数的变量nonlocal只能用于嵌套函数且必须在修改前声明。lanbda匿名函数lambda是匿名函数适合写只有一行逻辑的小函数。公式:lambda 参数:表达式闭包和装饰器闭包需求有个外层变量count函数执行完本该被销毁但我希望函数结束后内层函数还能记住并修改这个外层变量——这就是闭包要解决的。分析闭包 带着环境背包的函数。它必须同时满足三个条件缺一不可┌──────────────────────────────────────────────────────┐│ 闭包三大条件 │├──────────────────────────────────────────────────────┤│ ① 函数嵌套内层函数定义在外层函数内部 ││ ② 变量引用内层函数引用了外层函数的变量非全局 ││ ③ 返回内层函数外层函数 return 内层函数本身 │└──────────────────────────────────────────────────────┘闭包的核心价值把状态保存下来。外层函数结束后内层函数依然背着当时的外层变量每次调用都能累积。预期效果命令 / 代码参数解读return counter— 注意没有括号返回的是函数对象本身不是调用结果。所以c1 create_counter()拿到的是一个记住了count0的函数。c1()每次调用counter里的nonlocal count修改的是那个被记住的外层count于是不断累加1 → 2 → 3。c2是另一次create_counter()创建的有自己独立的count所以c2()又从 1 开始。c1.__closure__是一个元组装着闭包捕获的每个外层变量cellcell_contents就是它当前的值3。小结闭包 内层函数 它记住的外层变量。常见用途计数器、配置缓存、装饰器底层。装饰器传统语法糖需求已有十几个函数现在想给它们统一加上执行前打印日志 / 计时的功能但不想改这些函数本身的代码开闭原则对扩展开放、对修改关闭。传统语法糖扩展知识点sort对列表内的数据进行排序sortedreverse排序反转顺序

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号