深圳建筑网站,h5自己制作模板,开发网页游戏平台,做网站托管的好处好的#xff01;这是一份关于 Python 函数参数与作用域的初级指南#xff0c;旨在帮助你穿越这些概念构成的“沙漠”与“丛林”。 生存技巧一#xff1a;认识绿洲——函数定义与调用 函数就像沙漠中的绿洲#xff0c;它封装了可重复使用的代码块。定义函数使用 def 关键字…好的这是一份关于 Python 函数参数与作用域的初级指南旨在帮助你穿越这些概念构成的“沙漠”与“丛林”。生存技巧一认识绿洲——函数定义与调用函数就像沙漠中的绿洲它封装了可重复使用的代码块。定义函数使用def关键字def 问候(名字): 向指定名字的人打招呼 信息 f你好{名字} print(信息)问候: 函数名是我们找到绿洲的标识。(名字):形参列表。名字是我们在函数内部使用的一个占位符变量代表调用者实际传入的值。它定义了绿洲的入口。...: 文档字符串说明这个绿洲是做什么用的。信息 ...和print(信息): 函数体绿洲内部的具体功能。调用函数就是使用绿洲问候(小明) # 输出你好小明 问候(小红) # 输出你好小红小明和小红是实参。它们是我们在调用时实际传入的值会传递给函数内部的形参名字。生存技巧二穿越参数沙漠——理解参数传递沙漠中有不同类型的路径参数传递方式位置参数最常见的路径实参按顺序传递给形参。def 介绍(姓名, 职业): print(f{姓名} 是一名 {职业}) 介绍(张三, 程序员) # 输出张三 是一名 程序员 介绍(程序员, 张三) # 输出程序员 是一名 张三 (顺序错了结果无意义)关键字参数指定形参名字来传递顺序不再重要。介绍(职业画家, 姓名李四) # 输出李四 是一名 画家 (顺序颠倒但结果正确)默认参数为形参指定一个默认值。如果调用时不提供该实参则使用默认值。默认参数通常在函数定义时计算一次。def 点餐(菜品, 数量1): # 数量默认是 1 print(f点了 {数量} 份 {菜品}) 点餐(宫保鸡丁) # 输出点了 1 份 宫保鸡丁 (使用默认数量) 点餐(鱼香肉丝, 数量2) # 输出点了 2 份 鱼香肉丝可变数量参数处理不确定数量的路径。*args: 收集任意多个位置参数到一个元组中。def 求和(*数字): 结果 0 for 数 in 数字: 结果 数 return 结果 print(求和(1, 2)) # 输出3 print(求和(1, 2, 3, 4)) # 输出10**kwargs: 收集任意多个关键字参数到一个字典中。def 显示信息(**信息): for 键, 值 in 信息.items(): print(f{键}: {值}) 显示信息(姓名王五, 年龄30, 城市北京) # 输出 # 姓名: 王五 # 年龄: 30 # 城市: 北京生存技巧三探索作用域丛林——变量的可见范围丛林有不同区域变量只在特定区域可见局部作用域在函数内部定义的变量包括形参。它们只在这个函数内部有效。走出这个函数绿洲这些变量就消失了。def 计算(): 局部变量 10 # 在计算函数内部定义 print(局部变量) # 在函数内部可以访问 计算() # 输出10 print(局部变量) # 报错NameError: name 局部变量 is not defined (在函数外部不可见)全局作用域在函数外部定义的变量。它们在整个程序文件丛林中都可见。在函数内部可以读取全局变量但通常不建议在函数内部直接修改全局变量容易引起混乱。全局变量 100 # 在函数外部定义 def 查看全局(): print(全局变量) # 在函数内部可以读取全局变量输出100 def 尝试修改(): 全局变量 200 # 这实际上创建了一个新的同名局部变量不是修改全局变量。 print(全局变量) # 输出200 (访问的是局部变量) 查看全局() # 输出100 尝试修改() # 输出200 print(全局变量) # 输出100 (全局变量未被函数内的操作修改)修改全局变量如果确实需要在函数内部修改全局变量需要使用global关键字声明。全局计数器 0 def 增加计数器(): global 全局计数器 # 声明我们要修改的是全局变量 全局计数器 1 print(全局计数器) # 输出0 增加计数器() print(全局计数器) # 输出1嵌套函数与nonlocal在函数内部再定义函数嵌套函数。内部函数可以访问外部函数的变量。如果想在内部函数中修改外部函数的变量非全局变量需要使用nonlocal关键字。def 外部函数(): 外部变量 外部 def 内部函数(): nonlocal 外部变量 # 声明要修改外部函数的变量 外部变量 被内部修改了 print(内部:, 外部变量) # 输出内部: 被内部修改了 内部函数() print(外部:, 外部变量) # 输出外部: 被内部修改了 (外部变量被修改了) 外部函数()生存锦囊关键要点形参 vs 实参定义函数时括号里的是形参占位符调用函数时传入的是实参实际值。参数传递方式掌握位置参数、关键字参数、默认参数、*args、**kwargs的使用场景。作用域规则优先访问局部变量。内部可读取外部变量。修改全局变量用global。修改外层非全局变量用nonlocal。避免陷阱小心默认参数的可变对象如列表、字典带来的副作用。例如def 添加元素(目标[]): # 默认参数是空列表 目标.append(新元素) return 目标 print(添加元素()) # 输出[新元素] print(添加元素()) # 输出[新元素, 新元素] (因为默认列表是同一个对象)解决方案使用不可变对象如None作为默认值并在函数内部创建可变对象。def 添加元素(目标None): if 目标 is None: 目标 [] # 每次调用都创建新列表 目标.append(新元素) return 目标理解参数传递和作用域是掌握 Python 函数的关键。多练习多思考变量的生命周期和可见范围你就能在这片“沙漠”与“丛林”中游刃有余