python核心语法(四)- 函数
Python 核心语法四—— 函数初始Python篇 进阶版2026 年最新基于 Python 3.12/3.13这是 Python 中最重要、最灵活、最容易被面试深挖的核心语法之一。掌握本篇后你就能写出优雅、可复用、高性能的 Python 代码。1. 函数基础语法必须手敲 3 遍def函数名(参数列表):函数文档字符串docstring—— 强烈推荐写# 函数体return返回值# 可省略返回 None最简单例子defgreet(name):向某人问好print(f你好{name})returnf问候完成{name}# 调用resultgreet(张三)print(result)2. 函数参数的 5 种传递方式重中之重面试必考1位置参数最常见defpower(base,exponent):returnbase**exponentprint(power(2,3))# 82默认参数面试高频defgreet(name,greeting你好):print(f{greeting}{name})greet(李四)# 你好李四greet(王五,早上好)# 早上好王五重要规则默认参数必须放在普通参数后面且默认值只在定义时计算一次坑3关键字参数keyvaluedefstudent(name,age,city北京):print(name,age,city)student(age18,name张三)# 顺序可以乱写4可变位置参数*args最灵活defadd(*numbers):returnsum(numbers)print(add(1,2,3,4,5))# 15print(add(10,20))# 305可变关键字参数**kwargsdefperson_info(**info):forkey,valueininfo.items():print(f{key}:{value})person_info(name张三,age18,city上海,hobby编程)混合使用顺序规则必须记住deffunc(a,b,*args,c10,**kwargs):pass# 顺序普通参数 → *args → 默认参数 → **kwargs3. 返回值与多返回值Python 特色defcalculate(a,b):returnab,a-b,a*b,a/b# 自动打包成 tuplesum_,diff,mul,divcalculate(10,3)print(sum_,diff,mul,div)4. 作用域LEGB 规则—— 面试必问Python 查找变量顺序L → E → G → Bx100# Globaldefouter():x50# Enclosing闭包作用域definner():x10# Localprint(x)# 10inner()print(x)# 50outer()print(x)# 100global 与 nonlocal修改外部变量x0defcounter():globalx# 声明使用全局变量x1returnxdefouter():count0definner():nonlocalcount# 修改外层函数的变量count1returncountreturninner5. 高级函数特性Pythonic 精华1lambda 匿名函数一行函数addlambdax,y:xyprint(add(3,5))# 8# 常用场景排序、过滤、mapstudents[(张三,85),(李四,92),(王五,78)]students.sort(keylambdax:x[1],reverseTrue)2map、filter、reduce函数式编程nums[1,2,3,4,5]# map对每个元素应用函数squareslist(map(lambdax:x**2,nums))# [1,4,9,16,25]# filter筛选evenslist(filter(lambdax:x%20,nums))# [2,4]# reduce需从 functools 导入fromfunctoolsimportreducetotalreduce(lambdax,y:xy,nums)# 153递归函数经典deffactorial(n):ifn1:return1returnn*factorial(n-1)print(factorial(5))# 1206. 装饰器Decorator—— Python 最优雅的特性之一importtimedeftimer(func):计时装饰器defwrapper(*args,**kwargs):starttime.time()resultfunc(*args,**kwargs)endtime.time()print(f{func.__name__}执行耗时:{end-start:.4f}秒)returnresultreturnwrappertimerdefslow_function():time.sleep(1.5)print(函数执行完成)slow_function()7. 一句话总结面试 30 秒版“Python 函数支持位置参数、默认参数、*args、**kwargs 四种参数类型返回值可多个自动打包 tuple。变量查找遵循 LEGB 规则可用 global/nonlocal 修改作用域。lambda、map/filter/reduce、装饰器、递归是 Python 函数式编程的精髓。”本篇结束你已经系统掌握了 Python 函数的所有核心知识下一讲预告初始Python篇 第五讲模块module与包package__name__ __main__的真正含义常用标准库os、sys、datetime、random、json 等包管理与虚拟环境想现在就看下一讲吗直接回复以下任意关键词我立刻发出下一讲→ 模块与包详解练习题→ 30 道函数专属练习 面试真题带答案装饰器→ 深入装饰器原理 多层装饰器 类装饰器项目→ 用函数写一个完整学生管理系统继续加油你现在离写出专业级 Python 代码只差最后几步了

相关新闻

OpenClaw能做什么?全面解析“小龙虾”AI的百变能力与必须警惕的安全红线

OpenClaw能做什么?全面解析“小龙虾”AI的百变能力与必须警惕的安全红线

“今天你养龙虾了吗?”2026年开年以来,这句话在科技圈悄然流行。OpenClaw——这只被网友亲切称为“小龙虾”的开源AI智能体,凭借其惊人的“主动自动化”能力,在GitHub上收获了超过25万颗星,先后超越Linux和React&#…

2026/7/3 3:14:27 阅读更多 →
MITHarvard 最新提出 PAGE-4D:让 3D 模型“看懂“动态世界的统一框架

MITHarvard 最新提出 PAGE-4D:让 3D 模型“看懂“动态世界的统一框架

视觉几何基础变换器(VGGT)在静态场景中表现优异,但在动态场景下面临固有矛盾:相机姿态估计需抑制动态区域,而几何重建则需建模动态信息。如何在统一框架下协调这一任务冲突? 来自MIT和Harvard的研究团队提出了PAGE-4D(Disentangle…

2026/5/17 12:54:34 阅读更多 →
3.11 OJ

3.11 OJ

一、题目:最长的单词作者: ZhuKai时间限制: 10s章节: 字符串问题描述明明刚开始学习英语的时候,对英语有浓厚的兴趣,但是随着时间的推移,英语单词量的增加,明明越来越觉得背单词是一件相当痛苦的事情。于是他想出各种各…

2026/7/4 20:34:56 阅读更多 →

最新新闻

3步搭建个人哔咔漫画离线图书馆:告别网络卡顿,下载速度提升300%

3步搭建个人哔咔漫画离线图书馆:告别网络卡顿,下载速度提升300%

3步搭建个人哔咔漫画离线图书馆:告别网络卡顿,下载速度提升300% 【免费下载链接】picacomic-downloader 哔咔漫画 picacomic pica漫画 bika漫画 PicACG 多线程下载器,带图形界面 带收藏夹,已打包exe 下载速度飞快 项目地址: htt…

2026/7/5 5:21:40 阅读更多 →
MySQL数据视图学习笔记

MySQL数据视图学习笔记

1. 什么是视图?视图是数据库的虚拟表,不存储真实数据,仅保存一条预编译的SELECT查询语句。每次查询视图时,数据库会动态执行这条SQL,从关联的底层数据表中实时计算并返回结果。视图相当于给底层数据表开了一扇“观景窗…

2026/7/5 5:19:36 阅读更多 →
DDrawCompat完整指南:如何让经典Windows游戏在现代系统上流畅运行

DDrawCompat完整指南:如何让经典Windows游戏在现代系统上流畅运行

DDrawCompat完整指南:如何让经典Windows游戏在现代系统上流畅运行 【免费下载链接】DDrawCompat DirectDraw and Direct3D 1-7 compatibility, performance and visual enhancements for Windows Vista, 7, 8, 10 and 11 项目地址: https://gitcode.com/gh_mirror…

2026/7/5 5:19:36 阅读更多 →
MyBatis是什么?MyBatis-Plus是什么?

MyBatis是什么?MyBatis-Plus是什么?

MyBatis是什么?一款 持久层 框架持久层是什么?软件分层架构中,负责实现数据持久化、专门与数据库交互的层级框架是什么?一套封装了底层通用逻辑、提供统一开发规范的半成品程序(开发人员在这套半成品程序上继续开发自己…

2026/7/5 5:17:36 阅读更多 →
OfflineInsiderEnroll:Windows Insider计划的终极离线管理解决方案

OfflineInsiderEnroll:Windows Insider计划的终极离线管理解决方案

OfflineInsiderEnroll:Windows Insider计划的终极离线管理解决方案 【免费下载链接】offlineinsiderenroll OfflineInsiderEnroll - A script to enable access to the Windows Insider Program on machines not signed in with Microsoft Account 项目地址: http…

2026/7/5 5:13:35 阅读更多 →
Pearcleaner:彻底告别macOS应用残留,让Mac重获新生的免费开源工具

Pearcleaner:彻底告别macOS应用残留,让Mac重获新生的免费开源工具

Pearcleaner:彻底告别macOS应用残留,让Mac重获新生的免费开源工具 【免费下载链接】Pearcleaner A free, source-available and fair-code licensed mac app cleaner 项目地址: https://gitcode.com/gh_mirrors/pe/Pearcleaner 你是否曾经在macOS…

2026/7/5 5:11:35 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻