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

Python3 函数(小白版)

一、函数概念

函数是封装一段重复代码的代码块,实现代码复用、简化结构,使用def关键字定义。

# 语法格式def函数名(形参列表):函数体return返回值

二、无参函数

没有参数,直接调用。

defhello():print("Hello Python函数")# 调用函数hello()

三、有参函数

1. 位置参数(必填参数)

实参按顺序一一对应形参。

defadd(a,b):res=a+breturnresprint(add(3,5))# 8

2. 关键字参数

调用时指定参数名,顺序可打乱。

definfo(name,age):print(f"姓名:{name},年龄:{age}")info(age=18,name="小明")

3. 默认参数

形参设置默认值,不传参使用默认。

默认参数必须放在位置参数后面

defstudent(name,age=18):print(name,age)student("小红")student("小刚",20)

四、可变参数

1. *args 不定长位置参数,打包成元组

接收任意多个位置参数。

defsum_all(*args):s=0foriinargs:s+=ireturnsprint(sum_all(1,2,3,4))

2. **kwargs 不定长关键字参数,打包成字典

接收任意多个关键字参数。

defdict_info(**kwargs):print(kwargs)dict_info(name="张三",height=175,sex="男")

参数顺序规范

**位置参数 > *args > 默认参数 >kwargs

五、return 返回值

  1. return终止函数,带回返回数据;
  2. 无return默认返回None
  3. 返回多个数据自动打包成元组
defcalc(x,y):add=x+y sub=x-yreturnadd,sub a,b=calc(10,3)print(a,b)

六、局部变量 & 全局变量

  1. 局部变量:函数内部定义,仅函数内可用;
  2. 全局变量:函数外定义,全文件可用;
  3. global:函数内修改全局变量。
num=100defchange():globalnum num=200change()print(num)

七、匿名函数 lambda

一行简易函数,格式:lambda 参数:表达式,多用于简单逻辑。

# 普通写法deff(x,y):returnx*y# lambda写法mul=lambdax,y:x*yprint(mul(4,5))

常配合map()、sorted()使用:

lst=[1,2,3]res=list(map(lambdax:x**2,lst))print(res)

八、函数嵌套 & 闭包

函数里定义新函数,内层函数使用外层变量形成闭包。

defouter(x):definner(y):returnx+yreturninner f=outer(10)print(f(5))

九、装饰器(进阶)

在不修改原函数代码前提下,新增功能。

defdecorator(func):definner():print("函数执行前")func()print("函数执行后")returninner@decoratordeftest():print("原函数逻辑")test()

十、常用内置函数补充

len()、max()、min()、sum()、map()、filter()都是系统封装好的函数。

# filter过滤li=[1,2,3,4,5]new=list(filter(lambdax:x%2==0,li))print(new)
http://www.jsqmd.com/news/965241/

相关文章:

  • 2026年琉璃瓦加工厂品牌推荐,哪家团队专业? - myqiye
  • SRA数据下载太慢?试试用 Aspera 加速你的 SRA Toolkit 数据获取流程
  • day 2:RAG 快速原型实现计划
  • 魔改U性价比神器QNCW上车记:手把手教你用CH341A给华擎B365M Pro4刷BIOS
  • 001 声波、超声波与次声波简介
  • SAP开发者必备:如何用BAPI_INCOMINGINVOICE_PARK批量处理采购预制发票及后台表(EKBE/BKPF)取值逻辑
  • 华硕笔记本终极轻量控制神器:G-Helper完全使用指南
  • Betaflight黑匣子:飞行数据记录的终极指南与实战技巧
  • STM32F030用软件SPI驱动74HC165读取8路按键(附CubeMX配置与完整代码)
  • 一个人写了一套店群矩阵自动化软件:我是如何把8人运营成本从月薪6万降到8千的
  • 空间资源配置中的均匀性原则与随机几何图模型
  • 华大HC32F460 Bootloader实战:从Flash分区到Keil地址设置,手把手带你避坑
  • AutoLisp字段表达式全解析:从‘%<\AcObjProp’到动态文字,一篇看懂
  • 2026年舞台美术色彩诊断培训课程价格排行 - myqiye
  • AI生成内容能否过审?CSDN最新算法风控阈值曝光,92.6%的定时发布失败源于这1个隐藏字段!
  • 内网离线方式Docker安装Elasticsearch
  • ClickHouse 高频写入的 Parts 雪崩:从 Too Many Parts 到可控背压的工程实践
  • 影刀RPA教程:从零开发TikTok店群全自动运营软件,一人管理200店零封号(附系统架构)
  • 第三篇:SpringAI 入门 03|20 + 向量库汇总 + FunctionCall、文档 ETL、AI 评测详解
  • 快速验证AI模型效果:用快马平台十分钟搭建多模型对话原型
  • 蓝速科技会议预约屏与电子门牌深度评测指南
  • 2026年网红砖多少钱,河北古瓦园林古建工程有限公司的报价透明 - myqiye
  • KaihongOS 5.0 X86 桌面版系统介绍与完整安装教程
  • 2026年灾后房屋质量检测机构评测:广告牌性能检测/建筑工程主体结构检测/房屋安全鉴定/房屋完损检测/房屋抗震检测/选择指南 - 优质品牌商家
  • 计算机底层原理:存储机制、CPU指令、函数调用全过程
  • 从libusb到libuvc:手把手教你为自定义USB摄像头写个简易驱动
  • 你的鼠标指针太无聊了?用Mousecape在Mac上实现光标自由
  • 5G物联网项目实战:从SUPI签约到DNN配置,一个完整的用户开户流程详解
  • DeFi 协议开发实战:从 Uniswap V2 恒定乘积公式 x * y = k 到自定义 AMM 流动性池算子实现
  • 一个人,一套软件,300个快手店铺:我把月人力成本从5万压到了7千