21:Python语法-函数2
一、变量作用域1、变量的作用域指的是变量的作用范围在哪里可以用哪里不可以用。2、全局变量在函数之外定义的变量称之为全局变量作用范围是整个文件。3、局部变量在函数内部定义的变量称之为局部变量作用范围函数内部函数外部无法使用。4、示例a1 #全局变量 def function2(str_1): num0 print(f全局变量{a}) for i in str_1: if i in aeiouAEIOU: num1 #局部变量 return num answerfunction2(hello) print(f元音字母个数{answer})二、global关键字1、global关键字用于明确告诉Python解释器在函数中要使用全局变量使得可以在函数内部修改全局变量的值。2、示例a1 #全局变量 def function2(str_1): num0 global a #如果不适用global无法在函数中修改全局变量 a1 print(f修改后的全局变量{a}) for i in str_1: if i in aeiouAEIOU: num1 #局部变量 return num answerfunction2(hello) print(f元音字母个数{answer}) print(a) #使用global后全局变量发生改变如果不适用global全局变量就不会发生改变函数外部无法访问函数内部的局部变量a1三、函数参数3.1传参方式1、位置参数调用时根据函数定义是的位置来传递参数调用函数时参数顺序与定义函数时参数顺序完全一致def function3(name,gender,age,grades): print(f位置传参姓名{name},性别{gender},年龄{age},成绩{grades}) return {name:name,gender:gender,age:age,grades:grades} #位置参数 answer1function3(张三,男,18,234) print(answer1)2、关键字传参调用函数时以函数定义时形参名称作为关键字。def function3(name,gender,age,grades): print(f关键字传参姓名{name},性别{gender},年龄{age},成绩{grades}) return {name:name,gender:gender,age:age,grades:grades} #关键字传参 answer1function3(grades345,name李四,gender女,age35) print(answer1)3、优缺点对比优点缺点应用场景位置传参简洁可读性差、容易出错、维护难参数少不容易混淆关键字传参可读性强、维护简单代码不简洁参数多容易混淆3.2默认参数1、默认参数也称缺省参数用于在函数定义时为参数提供默认值调用函数时可以不传递有默认值的参数。如果传递了参数默认值就不再生效。2、默认参数必须放在没有默认值的参数列表的后面一个函数在定义时是可以设置多个默认参数的3、示例使用默认值def function3(name,gender,age,grades234): print(f关键字传参姓名{name},性别{gender},年龄{age},成绩{grades}) return {name:name,gender:gender,age:age,grades:grades} #关键字传参 answer1function3(name李四,gender女,age35) print(answer1)传递了参数默认值就不再生效def function3(name,gender,age,grades234): print(f关键字传参姓名{name},性别{gender},年龄{age},成绩{grades}) return {name:name,gender:gender,age:age,grades:grades} #关键字传参 answer1function3(name李四,gender女,age35,grades456) print(answer1)3.3不定长参数1、不定长参数用于函数定义及调用时参数个数不确定0个或多个的场景。2、不定长参数-位置传递*args传递的所有匹配的位置参数都会被args变量收集这些参数会合并封装为一个元组args是元组类型并不会封装关键字参数def function3(*args): return max(args), min(args), round(sum(args)/len(args),2) max,min,avgfunction3(34,54,23,5456,8,78,564,563,5,64,5) print(max,min,avg)3、不定长参数-关键字传递**kwargs参数是以”键值“形式传递的关键字参数这些”键值“参数都会被kwargs接受封装为字典类型。def function3(*args,**kwargs): max_gradesmax(args) min_gradesmin(args) print(kwargs) if kwargs.get(round) is not None: avg_gradesround(sum(args)/len(args),kwargs.get(round)) if kwargs.get(print): print(f最大值{max_grades},最小值{min_grades},平均值{avg_grades}) return max_grades,min_grades,avg_grades print(function3(23,4,34,round3,printTrue))*args适用于处理数量不确定的数据。**kwargs适用于处理数量不确定的选项用来定制函数行为四、函数参数类型1、普通参数类型数字、布尔、字符串、列表、元组、集合、字典等。2、特殊类型函数def add(a,b): return ab def subtract(a,b): return a-b def multiply(a,b): return a*b def Divide(a,b): return a/b def function4(a,b,oper): return oper(a,b) print(function4(1,3,add)) print(function4(2,4,subtract)) print(function4(2,4,multiply)) print(function4(2,4,Divide))五、匿名函数1、匿名函数指的是没有名称的函数前面def所定义的函数为命名函数。2、匿名函数需要通过lambda表达式来声明函数可以简化简单函数的编写。3、语法结构lambda 参数列表:函数体 lambda x,y:x-y4、匿名函数可以赋值给变量可以通过变量调用匿名函数addlambda x,y:xy print(add(1,2))5、匿名函数中可以返回结果也可以不返回结果。返回结果时不需要写return,表达式的允许结果就是返回结果。

相关新闻

自演化代码智能体:从数字程序到物理世界智能

自演化代码智能体:从数字程序到物理世界智能

26年9月来自六角未来 (HexaFuture AI)公司的论文“Self-Evolving Coding Agents: From Digital Programs to Physical-World Intelligence”。 这是一篇有价值的系统框架与初步实证论文。它较有说服力地展示了“显式状态管理+验证&#xff0b…

2026/10/5 2:30:38 阅读更多 →
前端教程笔记 三

前端教程笔记 三

1.HTML字符实体 在HTML中我们可以用一种特殊的形式的内容&#xff0c;来表示某个符号&#xff0c;这种特殊形式的内容&#xff0c;就是HTML实体。比如小于号 < 用于定义HTML标签的开始。如果我们希望浏览器正确地显示这些字符&#xff0c;我们必须在HTML源码中插入字符实体…

2026/10/5 2:30:38 阅读更多 →
《从零入门Linux系统篇(五十七):线程篇·十——生产者消费者模型进阶:从环形缓冲区到POSIX信号量》

《从零入门Linux系统篇(五十七):线程篇·十——生产者消费者模型进阶:从环形缓冲区到POSIX信号量》

本文要做的&#xff0c;是围绕环形缓冲区&#xff0c;把生产者消费者模型真正跑起来。 先从环形缓冲区的核心逻辑讲起&#xff0c;看看这个“首尾相接”的结构是怎么转的&#xff0c;生产者和消费者又是如何在同一个圈里并发访问、互不踩脚的。接着深入POSIX信号量与P/V操作&a…

2026/10/5 2:30:38 阅读更多 →

最新新闻

微软驱动签名新规:Windows 11开发者与用户应对指南

微软驱动签名新规:Windows 11开发者与用户应对指南

最近这半年&#xff0c;微软针对驱动签名出了好几条新规&#xff0c;做驱动开发的和装驱动机器上遇到问题的普通用户&#xff0c;两边都被折腾得不轻。开发圈子最先感受到变化——以前“用 EV 证书签完名就能装”的老套路开始失灵&#xff0c;系统在加载驱动时不再只看签名有没…

2026/10/5 3:02:49 阅读更多 →
用分布式思维编排AI编程任务:多会话并行提升产出效率

用分布式思维编排AI编程任务:多会话并行提升产出效率

你在终端里敲下一条指令&#xff0c;给Claude Code或者Codex描述了一个听起来不算复杂的需求&#xff0c;然后看着它吭哧吭哧干了十几分钟&#xff0c;最后发现它不仅绕了一大圈&#xff0c;还把不该碰的文件也改了&#xff0c;甚至中途停下来问你一个五分钟前已经回答过的问题…

2026/10/5 3:02:49 阅读更多 →
十字斜入十字识别与决策:从图像特征到状态机控制

十字斜入十字识别与决策:从图像特征到状态机控制

如果你正在做摄像头组的智能车&#xff0c;大概率会对“十字”这个元素印象深刻。它不像环岛或者坡道那样需要一套复杂的绕行动作&#xff0c;但恰恰因为它看起来简单&#xff0c;翻车的队伍一点都不少。尤其是“斜入十字”&#xff0c;也就是车身从侧向以一个夹角冲进十字区域…

2026/10/5 3:02:49 阅读更多 →
高性能序列化库选型与优化实战:从JSON到Protobuf、FlatBuffers

高性能序列化库选型与优化实战:从JSON到Protobuf、FlatBuffers

序列化库是每个后端工程师都躲不开的组件。最近因为一个支付系统的数据同步模块遇到性能瓶颈&#xff0c;我把手头的高性能序列化库整个折腾了一遍&#xff0c;从选型对比到落地优化踩了不少坑&#xff0c;今天把这些经验整理出来。这篇文章适合正在做微服务通信、消息队列、缓…

2026/10/5 3:02:49 阅读更多 →
C#学生成绩管理系统:三层架构与数据库设计全解析

C#学生成绩管理系统:三层架构与数据库设计全解析

简介&#xff1a;这是一个基于C#与Access数据库的《学生成绩管理系统》课程作业完整项目&#xff0c;适合正在学习C#、数据库编程或需要完成类似课设的初学者参考。系统涵盖学生、课程、成绩三类核心数据的录入、查询、修改与删除&#xff0c;并实现了Windows窗体界面、ADO.NET…

2026/10/5 3:02:49 阅读更多 →
专科生写论文必备:8个亲测有效的AI工具清单

专科生写论文必备:8个亲测有效的AI工具清单

写这篇推荐的时候&#xff0c;我其实挺有感触的。我自己是专科出身&#xff0c;当年写毕业论文的时候是真的头疼。不是不努力&#xff0c;是没方法。选题不知道怎么选&#xff0c;文献看了就困&#xff0c;写出来的东西自己都觉得像流水账&#xff0c;改到第三稿的时候连导师都…

2026/10/5 3:01:49 阅读更多 →

日新闻

马斯克杀回智能体战场,Grok 4.5万亿参数撑腰,Cursor接手数字白领项目:用TaoToken统一Key跑通多模型Agent工作流

马斯克杀回智能体战场,Grok 4.5万亿参数撑腰,Cursor接手数字白领项目:用TaoToken统一Key跑通多模型Agent工作流

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 0:00:22 阅读更多 →
AI编程工具插件机制详解:plugin.json配置与加载失败排查指南

AI编程工具插件机制详解:plugin.json配置与加载失败排查指南

1. 从“plugins”这个词说起&#xff1a;它到底在解决什么问题如果你最近在折腾 AI 编程工具&#xff0c;尤其是 Cursor、Codex CLI、Claude Code 这类带 CLI 的编辑器或命令行助手&#xff0c;那你大概率绕不开一个词——plugins。这个词本身不新鲜&#xff0c;从浏览器到 IDE…

2026/10/5 0:00:23 阅读更多 →
第26课:OpenClaw|日志审计与问题诊断:把日志链路改到 TaoToken 的排查清单

第26课:OpenClaw|日志审计与问题诊断:把日志链路改到 TaoToken 的排查清单

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 0:00:23 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 1:10:22 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 11:40:45 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 9:43:54 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 20:14:29 阅读更多 →