2.python之函数

发布时间:2026/8/28 15:38:55

2.python之函数
函数参数传递的是内存地址【引用】。1.函数的定义函数传参方式分为两种位置形式传参 关键字传参。其中前者打包为元组后者打包为字典。潜规则定义动态参数时*args、**kwargs#定义一个函数 def 函数名(): def test(): print(test) #调用函数 test() # py中参数没有修饰符。def 函数名(形参1形参2): def func_with_param(data): print(data) func_with_param(12) def func_with_params(p1,p2,p3): print(p1,p2,p3) func_with_params(p1 12,p3 13,p2 14) def func_with_params_default(p1,p2 23,p3 89): print(p1,p2,p3) func_with_params_default(12) print() #形参可变参数*。实参统一会被打包为元组 def func_with_params_tuple(*p): print(p) if len(p) 1: print(p[0]) if len(p) 2: print(p[0]) print(p[1]) #可以通过位置参数的形式传入n个参数 func_with_params_tuple(12) func_with_params_tuple(12,你好) #双星号自动打包为字典格式 def func_with_params_dict(**p): print(p.get(name)) print(p.get(age)) #实参必须用关键词的形式传参 func_with_params_dict(name 张三,age 12) #定义顺序单星号必须位于双星号之前。 #实参位置参数在前关键字传参在后。 def func_with_params_mix(*p1,**p2): print(p1[0]) print(p2.get(username)) func_with_params_mix(12,username 卢俊义)同一函数同时被调用多次每次调用都存在属于自己的调用栈彼此之间是独立的。2.函数的返回值#返回值可以是任意类型没有返回值默认返回None def func_with_return(): return 1212121 rtn func_with_return() print(rtn) def func_with_none(): print(none) #返回结果None print(func_with_none()) def func_with_r(): print( none ) return #返回结果None print(func_with_r()) def a() - 基本数据类型: #关键字 return 可以省略函数也可以显式缺失返回值此时返回默认值None return 基本数据类型3.可变 or 不可变类型def func(a1): #字符串是不可变类型重新分配内存 return a1.upper() v2 fjkwmqkjf print(func(v2)) #大写内容 print(v2) #原内容不变 def func2(a1): a1.append(100) l1 [1,2,434] func2(l1) print(l1) #[1, 2, 434, 100]注意入参是可变 or 不可变类型。4.作用域作用域一块内存区域。区域内的数据是可以共享的。py中执行函数就会为该函数创建一个作用域。全局作用域全部作用域共享。5.Global关键字global是用在函数中用于表示此变量不是新创建的数据而是全局变量中的那个数据地址指向形同。USER_TYPE blog def func3(): USER_TYPE edu print(USER_TYPE) print(USER_TYPE) #edu func3() #edu print(USER_TYPE) #edu print() def func4(): global USER_TYPE #生命该局部作用域内变量USER_TYPE使用全局变量 USER_TYPE edu print(USER_TYPE) print(USER_TYPE) #blog func4() #edu print(USER_TYPE) #edu6.函数名本质就是变量名def func(): print(123) print(func) # 函数名 function func at 0x104c29310 v1 func #变量v1指向函数名 v2 func() # v2变量是指函数的执行结果 data_list [func,func()] data_list[0] # 等价于v1 data_list[0]() # 运行函数func data_list[1] # 函数执行的返回结果备注函数名同样可以作为字典类型的value。7.lambda表达式【匿名函数】条件特定情况下使得代码更加简洁一行代码实现定义简单函数。f lambda : 12378788 print(f()) #12378788 f1 lambda a1,a2:a1 a2 print(f1(100,200)) #300 f2 lambda data_str : data_str.upper() print(f2(saska)) #返回大写 f3 lambda data_list:data_list[1] print(f3([2,4342])) # 输出列表下标为1的元素8.内置函数abs、pow【次方】、sum、divmod取余、all、any、ord、chr。v1,v2 divmod(92,10) print(v1,v2) data [1,3,-1] # 是否所有元素转换成布尔值均为true print(all(data)) # true 是否所有元素转换成布尔值均为true print(all([0,9])) # false # 存在元素为true则返回true print(any([1,-1,90])) # true print(any([0,,[],{}])) #false #unicode编解码~ 将文字和二进制坐上对应 print(ord(A)) # 返回字符对应的十进制数 print(chr(65)) #基于十进制数返回对应的字符int、str、bool、list、dict、set、tuple、float、bytes将目标value转化为对应类型的值。callable是否可执行。def func(): print(1234) date_list [12,34,func] for item in date_list: if callable(item): item()enumerate循环过程中自动提供自增的一列。goods [飞机,破鸡排,AK47] for idx,item in enumerate(goods,1): msg {} {}.format(idx,item) print(msg)排序data_l [23,45,12,4,1] #对原数组进行排序 data_l.sort() print(data_l) data_l1 [23,45,12,4,1] #排序后生成新列表原列表元素顺序不变区别于sort()函数 new_l sorted(data_l1) print(new_l,data_l1)9.推导式简便语法一行代码实现生成列表、字典等多个元素。9.1.列表推导式#生成1-100的列表 data_list [ i for i in range(100) ] #生成元素均为100的列表 data_list1 [ 100 for i in range(10) ] data_list2 [ 100 i for i in range(10) ] data_list3 [100 i for i in range(10) if 10 i 30] data_list4 [100,内控,3,哦好,(2,4),(4,6),[89,34,1,5,90]] print([item for item in data_list4 if type(item) int]) # [100,3] print([item for item in data_list4 if type(item) list]) # [[89,34,1,5,90]] print([item for item in data_list4 if type(item) tuple]) # [(2, 4), (4, 6)]9.2.字典推导式data { 键:值 for i in range(10)}print({i:123 for i in range(10)}) print({i:(i,i100) for i in range(10) if i 5})

相关新闻

基于MODE和PUMA的DOA 估计研究(Matlab代码实现)

基于MODE和PUMA的DOA 估计研究(Matlab代码实现)

2026/8/28 5:55:27

👨‍🎓个人主页 💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰&a…

104、C2PSA 的特征分离比例消融:split_factor=0.5/0.25/0.75 的精度与速度变化

104、C2PSA 的特征分离比例消融:split_factor=0.5/0.25/0.75 的精度与速度变化

2026/8/28 6:10:46

104、C2PSA 的特征分离比例消融:split_factor=0.5/0.25/0.75 的精度与速度变化 上周帮一个做工业缺陷检测的团队调模型,对方在YOLOv11的C2PSA模块里卡了三天——他们发现把split_factor从默认的0.5改成0.25后,mAP掉了将近2个点,但推理速度反而没怎么提升。这让我想起自己去…

Docker部署Papra极简文件归档平台

Docker部署Papra极简文件归档平台

2026/8/28 13:55:38

【Docker部署Papra极简文件归档平台一、Papra介绍1.1 Papra简介1.2 主要特点二、本次实践规划2.1 本地环境规划2.2 本次实践介绍三、本地环境检查3.1 检查Docker服务状态3.2 检查Docker版本3.3 检查docker compose 版本四、拉取Papra镜像五、部署Papra服务5.1 创建部署目录5.2 …

C++函数模板在量化交易中的核心应用与性能优化实践

C++函数模板在量化交易中的核心应用与性能优化实践

2026/8/28 15:29:14

1. 从策略到代码:为什么量化交易离不开C模板如果你在量化交易这个行当里摸爬滚打过一阵子,尤其是在做高频、做市或者对延迟有极致要求的策略时,你一定会对C又爱又恨。爱的是它那无与伦比的性能和控制力,恨的是它那繁琐的语法和稍不…

蓝桥杯单片机NE555频率测量:IO模式原理、代码实现与误差优化

蓝桥杯单片机NE555频率测量:IO模式原理、代码实现与误差优化

2026/8/28 15:29:14

1. 项目概述:从“测频率”到“玩转NE555” 搞单片机开发的,尤其是准备蓝桥杯这类竞赛的朋友,对“频率测量”这个任务肯定不陌生。它就像电子世界里的“脉搏检测”,是理解信号、调试电路、实现控制的基础。官方开发板上那个小小的N…

5G信号放大器实战:从选型到验收的室内补盲全攻略

5G信号放大器实战:从选型到验收的室内补盲全攻略

2026/8/28 15:29:14

城市里住了这么多年,我一直觉得信号覆盖这件事跟装修一样——没住进去之前永远不知道哪里会翻车。上个月朋友找我帮忙,说家里新装了一台5G CPE,客厅跑测速能到600Mbps,结果走进书房一关门直接掉到50Mbps,视频会议卡成P…

免费查重ai率入口在哪里?查看AIGC检测报告、重复率字段和下载权限

免费查重ai率入口在哪里?查看AIGC检测报告、重复率字段和下载权限

2026/8/28 15:29:14

免费查重ai率入口在哪里?查看AIGC检测报告、重复率字段和下载权限 入口官方地址与形态能看到什么权限和下载边界腾讯朱雀AI检测助手matrix.tencent.com/ai-detect/ai_gen,网页检测AI生成概率、疑似段落等参考结果,以实际页面为准免费能力和可…

屏蔽搜索引擎AI摘要的开源项目:Nobody Asked for AI 安装与使用指南

屏蔽搜索引擎AI摘要的开源项目:Nobody Asked for AI 安装与使用指南

2026/8/28 15:29:14

让 AI 闭嘴的“反向工具”出现了:一个能屏蔽搜索引擎 AI 摘要的项目,到底怎么用? 如果你最近上网搜索时,经常被页面顶部的 AI 生成摘要打扰,或者你只是单纯不想让 AI 替你总结内容、不想让 AI 回答“你以为你想问的问题…

Hermes Agent 定制指南:从安装到安全围栏的 5 步配置清单

Hermes Agent 定制指南:从安装到安全围栏的 5 步配置清单

2026/8/28 15:19:14

Hermes Agent 定制指南:从安装到安全围栏的 5 步配置清单 【免费下载链接】hermes-agent The agent that grows with you 项目地址: https://gitcode.com/GitHub_Trending/he/hermes-agent 刚装好的 Hermes Agent 像一个刚入职的助理:什么都能做&…

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

2026/8/27 11:10:02

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

2026/8/27 7:25:23

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

2026/8/28 7:34:42

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

基于Claude Code的开源AI求职框架:从职位搜索到Offer的全自动化闭环

基于Claude Code的开源AI求职框架:从职位搜索到Offer的全自动化闭环

2026/8/28 0:08:32

当AI助手能够独立完成从职位匹配、简历定制到面试准备的全链路求职流程时,求职不再是一场信息战,而是一场工程化战役。框架概述:本地运行的AI求职引擎这是一个构建在Claude Code之上的开源AI求职框架,核心理念是"在工作者的机…

Godot 4 仿 agar.io:相机缩放被 max_zoom 卡死,窗口越大球越小的根因与修复

Godot 4 仿 agar.io:相机缩放被 max_zoom 卡死,窗口越大球越小的根因与修复

2026/8/28 0:08:32

1. 问题现象 在 Godot 4 仿 agar.io 的 2D 项目中,相机缩放设计为「由球组整体尺寸决定」,世界可见高度恒定,窗口只作为视口裁剪。默认小窗口 1280x720 时相机高度正常;但窗口最大化到 2940x1912 后,视角被明显拉远、…

从软件测试大赛到实战:Java+Selenium自动化测试进阶指南

从软件测试大赛到实战:Java+Selenium自动化测试进阶指南

2026/8/28 0:08:32

1. 缘起:从校园到赛场,我的软件测试之路几年前,我还是一个在校园里对着Java课本和“Hello World”程序挠头的普通学生。软件测试对我来说,只是一个在开发流程末尾、用鼠标点点按钮的模糊概念。直到我偶然在学校的公告栏上看到了“…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/28 7:35:26

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/28 7:34:51

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/28 7:34:35

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…