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

LLM系列:1.python入门:10.函数

函数一.函数基础1. def - 定义与封装函数作用定义一个自定义函数封装特定的处理逻辑。函数体内最终返回return的不是局部变量本身而是局部变量指代的对象。deffunction_name(param1,param2): 这里是函数的帮助文档 (Docstring)用于说明函数功能。 # 逻辑代码resultparam1param2returnresult参数形参 (parameters) 定义函数时小括号中的参数仅作为函数体内代码逻辑的占位符接收传入的具体对象Any。返回值成功 遇到return语句时返回表达式的计算结果Any。如果不写return默认返回None。示例defsum_1(a,b):让输入的两个对象利用加号运算符进行相加cabreturnc# 调用函数此时传入的 1, 2 称为实参实际参数参与实际计算sum_1(1,2)# 结果为 3二.函数的参数函数在调用时可以通过位置顺序传入参数位置参数也可以明确指定参数名传入关键字参数如sum_1(b2, a1)。1. 默认参数 (可选参数)作用在定义函数时给形参设置初始默认值。调用时若不传入实参则自动带入默认值计算。注带有默认值的参数可选参数必须放在没有默认值的参数必选参数后面deffunction_name(a,bdefault_value):returnab参数必选参数 (a) 调用时必须被赋值的参数Any。默认参数 (b) 带有初始默认值的参数Any。返回值成功 返回逻辑运算的结果Any。示例defpower_1(a,b2):taforiinrange(1,b):t*areturnt power_1(2,3)# b 传入 3计算 2的3次方结果为 8power_1(2)# b 未传入默认使用 2计算 2的2次方结果为 42. *args - 可变长参数作用用于接收不定长任意数量的多个位置参数。Python 会将这些传入的多个参数打包封装为一个元组tuple带入函数内。deffunction_name(*args):returnargs参数*可变长参数 (args) 接收多个任意对象的占位符tuple。返回值成功 返回逻辑运算的结果Any。示例# 此时 *num 就是一个可变长参数但在函数体内使用时直接写 numdefsum_2(*num):r0foriinnum:rireturnr# 传入多个参数内部会被打包成元组 (1, 2, 3)sum_2(1,2,3)# 结果为 63. **kwargs - 可变长关键字参数作用用于接收不定长任意数量的关键字参数即带有参数名和对应值的参数。Python 会将其转化为字典dict带入函数内。常用于结构化输出信息。deffunction_name(**kwargs):returnkwargs参数可变长关键字参数 (kwargs) 接收多个键值对对象的占位符dict。返回值成功 返回逻辑运算的结果Any。示例defstudent(name,**interest):print(name:,name,interest:,interest)# 传入关键字参数 sport 和 eat内部会被打包成字典student(ximen,sportfootball,eatapple)# 打印结果: name: ximen interest: {sport: football, eat: apple}参数顺序的黄金法则在创建包含多种类型参数的函数时必须严格遵守以下参数顺序必选参数 - 默认参数 - 可变长参数 (*args) - 可变长关键字参数 (**kwargs)三.变量作用域与 Lambda 函数1. 变量作用域 (全局变量 vs 局部变量)局部变量在函数内定义的参数形参或变量作用域仅限该函数内部。全局变量在函数外部单独定义的变量可在全局跨函数使用。核心逻辑如果局部变量和全局变量重名在函数体内进行计算时优先使用局部变量。修改全局变量**可变类型可以在函数内部直接修改**如使用.append()。#可变类型函数内部可以直接修改l[1,2,3]deff():l.append(4)f()print(l)# [1, 2, 3, 4]不可变类型不能在函数内部直接修改其指向。若要强行修改必须使用global关键字声明。#不可变类型函数内部不能直接修改x10# 外部变量deff():xx1# 报错#Python 认为我要定义一个新的 x局部变量但右边又用到了局部空间里未定义的x → 就炸了f()global就是告诉 Python“这里的 x 不是新变量是外面的那个 x”#正确写法x10deff():globalx xx1f()print(x)# 11(1). global - 声明全局变量作用在函数体内部声明某个变量为全局变量。声明后函数体内对该变量的修改将直接作用于外部的全局变量。globalvar_name参数变量名 (var_name) 需要被声明或修改的全局变量名称Any。返回值成功 无返回值NoneType直接改变变量的作用域范围。示例a1# 全局变量 adefsum_2(b):globala# 声明此处的 a 就是外部的全局变量 aab# 修改全局变量 a 的值returna sum_2(2)# 返回 3print(a)# a 在外部也真正变成了 32. lambda - 匿名函数作用使用极为轻巧的方式定义一行搞定的轻便函数省去def的复杂结构。注轻便的代价是表达式中不能出现复杂的while循环等若需条件判断必须写成单行的if-else结构。lambdaarg1,arg2,...:expression参数参数列表 (arg1, arg2…) 传入匿名函数的形参变量Any。返回值成功 返回冒号后expression表达式的计算结果Any。示例# 1. 基础用法f1lambdax,y:xy f1(1,2)# 结果为 3# 2. 结合 if-else 判别结构# 逻辑如果 x10 返回 x1否则返回 x-1dlambdax:x1ifx10elsex-1d(2)# 结果为 1d(11)# 结果为 12四.内置函数#一、最核心len()# 长度 → inttype()# 类型 → typeprint()# 输出input()# 输入返回 str#二、循环 / 迭代必备range()# 生成序列常用于 forenumerate()# 索引 元素zip()# 多序列打包#三、数据处理max()# 最大值min()# 最小值sum()# 求和sorted()# 排序返回新列表abs()# 绝对值round()# 四舍五入pow()# 幂运算#四、类型转换int()# 转 intfloat()# 转 floatstr()# 转字符串list()# 转列表tuple()# 转元组set()# 转集合dict()# 转字典#五、判断 / 逻辑all()# 全为 Trueany()# 任意 True1. len - 获取长度作用用于返回容器中元素的个数。注只适用于可迭代对象如 list、str、tuple、dict、set 等int 不支持len(obj)参数对象 (obj) 需要获取长度的目标对象Iterable如 list、str、tuple、dict、set 等。返回值成功 返回元素个数int。示例len([1,2,3])# 3len(Hello)# 52. type - 获取类型作用用于返回对象的数据类型。type(obj)参数对象 (obj) 需要获取类型的目标对象Any。返回值成功 返回对象类型type。示例type(123)# inttype([1,2])# list3. print - 输出内容作用用于将内容输出到控制台。print(*objects,sep ,end\n)参数对象 (objects) 需要输出的内容Any可多个。分隔符 (sep) 多个对象之间的分隔符str。结束符 (end) 输出结束时追加的字符str。返回值成功 无返回值NoneType。示例print(Hello,World,sep-)# Hello-World4. input - 输入内容作用用于从控制台获取用户输入。input(prompt)参数提示信息 (prompt) 输入前显示的提示内容str。返回值成功 返回用户输入内容str。示例nameinput(请输入姓名)5. range - 生成序列作用用于生成整数序列常用于 for 循环。range(start,stop,step)参数起始值 (start) 序列起点int。结束值 (stop) 序列终点int不包含。步长 (step) 步进值int。返回值成功 返回一个 range 对象range可迭代。示例foriinrange(1,5):print(i)# 1 2 3 46. enumerate - 获取索引和值作用用于在遍历时同时获取索引和值。enumerate(iterable,start0)参数对象 (iterable) 可迭代对象Iterable。起始值 (start) 索引起始值int。返回值成功 返回一个可迭代对象enumerate元素为 tuple[int, Any]。示例fori,vinenumerate([10,20]):print(i,v)7. zip - 多序列打包作用用于将多个可迭代对象按位置打包成元组。zip(*iterables)参数对象 (iterables) 多个可迭代对象Iterable。返回值成功 返回一个可迭代对象zip元素为 tuple。示例list(zip([1,2],[a,b]))# [(1, a), (2, b)]8. max / min / sum - 数据处理作用用于获取最大值、最小值或求和。max(iterable)min(iterable)sum(iterable)参数对象 (iterable) 可迭代对象Iterable[数值类型]。返回值max() 返回最大值与元素类型一致。min() 返回最小值与元素类型一致。sum() 返回总和int 或 float。示例max([1,5,3])# 5sum([1,2,3])# 69. sorted - 排序作用用于对可迭代对象排序返回新列表。sorted(iterable,keyNone,reverseFalse)参数对象 (iterable) 可迭代对象Iterable。排序规则 (key) 排序函数Callable 或 None。反转标志 (reverse) 是否降序bool。返回值成功 返回排序后的新列表list。示例sorted([3,1,2])# [1, 2, 3]10. abs / round / pow - 数值处理作用用于进行基本数值运算。abs(x)round(x,ndigits)pow(x,y)参数abs(x) 数值int 或 float。round(x, ndigits) 数值int 或 float保留位数int。pow(x, y) 底数int 或 float指数int 或 float。返回值abs() 返回绝对值int 或 float。round() 返回四舍五入结果int 或 float。pow() 返回幂运算结果int 或 float。示例abs(-5)# 5round(3.1415,2)# 3.14pow(2,3)# 811. 类型转换函数作用用于不同数据类型之间的转换。int(x)float(x)str(x)list(x)tuple(x)set(x)dict(x)参数对象 (x) 任意数据需满足可转换条件。返回值int() 返回整数int。float() 返回浮点数float。str() 返回字符串str。list() 返回列表list。tuple() 返回元组tuple。set() 返回集合set。dict() 返回字典dict。示例list(abc)# [a, b, c]int(123)# 12312. all / any - 逻辑判断作用用于对可迭代对象进行整体逻辑判断。all(iterable)any(iterable)参数对象 (iterable) 可迭代对象Iterable[bool 或可转 bool 的值]。返回值all() 全为 True 返回 True否则 Falsebool。any() 任意为 True 返回 True否则 Falsebool。示例all([True,True])# Trueany([False,True])# True13. id - 获取对象地址作用用于返回对象在内存中的唯一标识地址。注该值在对象生命周期内唯一且不变可用于判断两个变量是否指向同一对象。id(obj)参数对象 (obj) 任意数据对象Any。返回值成功 返回对象的唯一标识int通常表示内存地址。示例a[1,2,3]ba c[1,2,3]id(a)id(b)# True同一个对象id(a)id(c)# False不同对象好的继续按你原模板风格补充14. isinstance - 类型判断作用用于判断一个对象是否属于某种类型或其子类。注相比type()更灵活支持继承关系判断。isinstance(obj,classinfo)参数对象 (obj) 需要判断的目标对象Any。类型 (classinfo) 类型或类型元组type 或 tuple[type, …]。返回值成功 如果对象属于该类型或其子类返回 True否则返回 Falsebool。示例isinstance(10,int)# Trueisinstance(abc,str)# Trueisinstance([1,2],list)# True# 支持多类型判断isinstance(10,(int,float))# True和type()对比用法不同type(1)int# Trueisinstance(1,int)# Trueisinstance()考虑继承关系而type()不会classA:passclassB(A):passbB()type(b)A# Falseisinstance(b,A)# True15. help - 查看帮助信息作用用于查看对象、函数、模块等的帮助文档docstring是 Python 内置的交互式文档查询工具。help() 本质是读取对象的doc文档字符串并进行格式化展示help(obj)参数对象 (obj) 任意 Python 对象如函数、类、模块、变量等。返回值成功 无返回值None但会在控制台/终端打印该对象的帮助信息docstring 说明文档。示例help(len)# 查看 len 函数的帮助信息help(list)# 查看 list 类的使用说明help(str.split)# 查看字符串 split 方法说明例如deff():这是一个示例函数passhelp(f)输出f()这是一个示例函数

相关文章:

LLM系列:1.python入门:10.函数

函数 一.函数基础 1. def - 定义与封装函数 作用:定义一个自定义函数,封装特定的处理逻辑。函数体内最终返回(return)的不是局部变量本身,而是局部变量指代的对象。 def function_name(param1, param2):""&q…...

微软宣布Windows 11 25H2全部漏洞已解决

据月初Windows Central / Neowin 等消息报道Microsoft Learn(Release Health 页面)所有 Known Issues → Resolved根据微软官方文档,Windows 11 目前已无任何漏洞,所有已知的影响操作系统的问题均已解决。​ ​​ ​版本号&#x…...

别再只会用find(X)了!Matlab数据查找的5个高阶用法,效率翻倍

别再只会用find(X)了!Matlab数据查找的5个高阶用法,效率翻倍 在数据分析领域,Matlab的find函数就像瑞士军刀中的主刀——基础但不可或缺。但许多工程师在使用了几年后,依然停留在find(X>0)这样的基础查询层面,这就像…...

2026届最火的十大降AI率神器横评

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 对于有效降低文本人工智能生成特征而言,能够采取下面这些系统性指令策略。其中其…...

跨境合同怎么签?Docusign国际文件签署的5个隐藏技巧

跨境合同签署的5个Docusign高阶技巧:时区、多语言与合规实战 跨国业务合作中,电子签约已成为企业提升效率的关键工具。作为全球领先的电子签名平台,Docusign不仅提供基础的签署功能,更隐藏着一系列专为跨境场景设计的高级特性。本…...

倒计时37天!2026奇点大会AI问答赛道TOP3方案首次解密:如何用200行代码实现99.2%语义对齐率?

第一章:倒计时37天!2026奇点大会AI问答赛道TOP3方案首次解密:如何用200行代码实现99.2%语义对齐率? 2026奇点智能技术大会(https://ml-summit.org) 在2026奇点大会AI问答赛道中,冠军团队“SemAlign”凭借一套轻量级、…...

DownKyi:3分钟掌握B站视频下载,轻松构建个人离线资源库

DownKyi:3分钟掌握B站视频下载,轻松构建个人离线资源库 【免费下载链接】downkyi 哔哩下载姬downkyi,哔哩哔哩网站视频下载工具,支持批量下载,支持8K、HDR、杜比视界,提供工具箱(音视频提取、去…...

2026年美容店广告灯箱实力厂商推荐,亮欣灯箱十八年生产经验赋能品牌形象升级

美容行业形象升级的关键:专业广告灯箱的价值凸显在美容行业竞争日益激烈的当下,门店形象成为吸引顾客的第一道关卡。美容店广告灯箱作为品牌视觉传达的重要载体,不仅承担着店铺标识功能,更直接影响消费者对品牌专业度的认知。广州…...

前端 PDF 导出:从文件流下载到自动分页

🧑‍💻 写在开头 点赞 收藏 学会🤣🤣🤣 在工作中,我们经常会遇到需要生成 PDF 的业务,比如合同、报告等。 前后端合作 对于前端来说,最省事的就是后端生成 PDF 文件,前…...

从零到一:基于VSCode与PlatformIO的ESP8266双框架(Arduino/RTOS_SDK)开发环境全攻略

1. 环境准备:打造ESP8266开发基石 第一次接触ESP8266开发时,我花了整整三天时间在环境配置上踩坑。现在回想起来,如果能有一份详尽的指南,至少能节省70%的时间。下面我就把验证过的完整环境搭建方案分享给大家,从Pytho…...

面试官最爱问的哈希表实战:用C++手撕‘存在重复元素II’和‘字母异位词分组’

哈希表在算法面试中的高阶应用:从解题到表达的全方位突破 在技术面试中,哈希表相关的题目几乎成为必考项。面试官不仅考察候选人的编码能力,更关注问题拆解、优化思路和沟通表达。本文将聚焦两道经典题目——"存在重复元素II"和&qu…...

openEuler 22.03下5分钟搞定Docker安装与镜像加速(华为云镜像源实测)

openEuler 22.03下5分钟搞定Docker安装与镜像加速(华为云镜像源实测) 在国产操作系统生态快速发展的今天,openEuler作为一款面向数字基础设施的开源操作系统,正受到越来越多开发者的关注。对于需要在openEuler上快速搭建容器化环境…...

Cursor Pro激活技术深度解析:3大核心技术实现与实战指南

Cursor Pro激活技术深度解析:3大核心技术实现与实战指南 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reached your t…...

5G NR调度器:从帧结构到资源分配的实战解析

1. 5G NR调度器入门:从概念到实战 第一次接触5G NR调度器时,我被各种术语搞得晕头转向。直到在实际项目中调试基站时,才真正理解调度器就像交通指挥中心——它要确保每个用户设备(UE)的数据包都能准时、高效地到达目的…...

如何用Jasminum插件3分钟搞定中文文献管理:Zotero终极效率提升指南

如何用Jasminum插件3分钟搞定中文文献管理:Zotero终极效率提升指南 【免费下载链接】jasminum A Zotero add-on to retrive CNKI meta data. 一个简单的Zotero 插件,用于识别中文元数据 项目地址: https://gitcode.com/gh_mirrors/ja/jasminum 还…...

免费论文AIGC检测使用指南:原理实操全攻略

最近不少同学都在问,写论文时用AI辅助生成的内容会不会被查出来?有没有靠谱的免费检测工具?作为过来人,我特别理解大家的焦虑。毕竟现在AI写作工具这么普及,但学校对学术诚信的要求也越来越严格。今天我们就来详细聊聊…...

哔哩下载姬DownKyi:如何免费解锁B站全画质视频下载的终极方案

哔哩下载姬DownKyi:如何免费解锁B站全画质视频下载的终极方案 【免费下载链接】downkyi 哔哩下载姬downkyi,哔哩哔哩网站视频下载工具,支持批量下载,支持8K、HDR、杜比视界,提供工具箱(音视频提取、去水印等…...

2026中国GEO行业生态友好发展白皮书

2026中国GEO行业生态友好发展白皮书:以EFI模型构建行业规范化发展新基准一、摘要2025年全球GEO行业市场规模超120亿美元,中国以480亿元规模占全球55.4%份额,成全球核心增长极。生成式AI搜索工具占全球30%搜索市场份额,GEO从小众技…...

别再只看RMS了!Zemax光学设计里,MTF曲线才是成像质量的‘照妖镜’

别再只看RMS了!Zemax光学设计里,MTF曲线才是成像质量的‘照妖镜’ 在光学设计领域,许多工程师习惯性地将RMS波前误差作为评判系统性能的黄金标准。这种思维定式往往导致一个尴尬局面:明明仿真结果显示RMS值极低,实际成…...

五大Web GIS地图框架深度对比:Leaflet、OpenLayers、Mapbox、Cesium与ArcGIS for JavaScript

1. Web GIS地图框架概述 第一次接触Web GIS开发时,面对众多地图框架的选择确实容易犯难。我至今记得五年前接手一个智慧城市项目时,因为选错框架导致项目延期两周的惨痛经历。现在回头看,其实每个主流框架都有其明确的适用场景,关…...

Cadence Virtuoso导入TSMC 65nm PDK保姆级避坑指南:从解压到仿真成功全流程

Cadence Virtuoso导入TSMC 65nm PDK全流程实战:从文件处理到仿真验证的深度避坑指南 在集成电路设计领域,PDK(Process Design Kit)是连接设计工具与制造工艺的关键桥梁。对于刚接触TSMC 65nm工艺的新手工程师来说,正确…...

Android应用如何精准识别并屏蔽主流模拟器运行环境

1. 为什么需要识别模拟器环境 在移动应用开发中,识别设备是否运行在模拟器上是一个常见的安全需求。我见过太多因为忽视这个环节而导致的安全事故——从游戏外挂泛滥到金融App被批量薅羊毛,甚至有些黑产团队专门用模拟器农场进行自动化攻击。 模拟器检测…...

从图纸到台架:一份给电机工程师的旋变(旋转变压器)选型与验收避坑指南

从图纸到台架:电机工程师的旋变选型与验收全流程实战指南 旋转变压器作为永磁同步电机的"神经末梢",其性能直接决定了整个电驱系统的控制精度与可靠性。在电动汽车三合一电驱系统开发中,我们常遇到这样的困境:实验室表现…...

从Ring 0到VM Exit:拆解KVM虚拟化底层,看你的CPU如何‘影分身’运行多个系统

从Ring 0到VM Exit:拆解KVM虚拟化底层,看你的CPU如何‘影分身’运行多个系统 当你在笔记本电脑上同时运行三个Linux开发环境和两个Windows测试机时,CPU就像施展了"影分身术"的忍者——看似每个系统都独占了完整的硬件资源&#xff…...

ai生成的视频有没有版权?注意事项

AI生成视频的版权归属,核心在于“人的独创性”。AI本身不是作者,其自动生成的内容无版权;但如果创作者通过详细脚本设计、复杂提示词调整、多轮修改与后期精修等付出独创性智力劳动,就能被认定为作品的著作权人。仅输入简单指令生…...

MRI 脊椎分割数据集/脊椎分割项目解决

MRI 脊椎分割数据集/脊椎分割项目解决 包含脊椎分割数据集: 原图,标签分别2460张 代码仅供参考MRI 脊椎分割数据集/脊椎分割项目解决 包含脊椎分割数据集: 原图,标签分别2460张完整的基于YOLOv5的MRI脊椎分割项目的实现。我们将涵盖以下内容:…...

如何在嘎嘎降AI中处理扫描版PDF论文:格式转换和处理教程

如何在嘎嘎降AI中处理扫描版PDF论文:格式转换和处理教程 第一次用降AI工具会遇到很多不确定的地方——传什么格式、选哪个模式、怎么验收效果。 这篇教程把常见问题都覆盖了,主要基于嘎嘎降AI(www.aigcleaner.com),4…...

2026最新|OpenClaw(小龙虾)Windows一键部署教程,内置28万免费Token直接用

2026年OpenClaw(小龙虾)持续升级,不仅解决了新手部署难、环境配置繁琐的痛点,更推出内置28万免费Token的Windows一键部署版本——无需手动配置依赖,无需额外付费获取Token,解压即装、一键启动,小…...

DeepSeek总结的Postgres 性能衰退

来源:https://mydbanotebook.org/posts/postgres-performance-regression-are-we-there-yet/ Postgres 性能衰退:我们到了吗? 2026年4月15日 2402 词 预计阅读 12 分钟 每年,PostgreSQL 都在变得更快。研究人员对从 8 版到 1…...

当AI学会害怕和好奇——V4认知与情绪

「当AI学会发脾气」—— 一个类脑认知系统的诞生记 7个版本迭代Python脚本,教会AI像人一样焦虑、兴奋、犯错和成长 📚 全系列文章: 如果把你扔进一个迷宫,你的大脑在干什么?150行代码,AI迈出了第一步聪明反…...