def gret ( name ): """打印问候消息。""" print ( "Hello, " + name + "!" ) # 调用函数greet( "Alice" ) # 输出:你好,Alice!摘要:def gret ( name ): """打印问候消息。""" print ( "Hello, " + name + "!" ) # 调用函数greet( "Alice" ) # 输出:你好,Alice!
1 . def关键字:该关键字用于定义Python中的函数。
2 . function_name:这是函数的标识符。它应该遵循与变量名称相同的规则。选择一个描述性名称来指示该函数的用途。3 .参数(可选):在括号 内,您可以指定函数作为输入的参数。4 .冒号:冒号表示函数体的开始。
5 .文档字符串(可选):紧接在函数定义行之后,您可以包含文档字符串 -用三引号括起来 的字符串文字。文档字符串充当函数的文档,解释它的作用、它采用的参数以及它返回 的内容。文档字符串是可选的,但建议用于记录代码。
6 .函数体:这是执行函数所需任务的代码块。它可以包含任何有效的 Python 语句、表达式 和其他函数调用。
7 . return语句(可选):在函数体内,可以使用 ` return`语句来指定函数被调用时应返回 的 值。如果省略` return`语句,函数默认返回` None` 。请注意,` return`语句是可选 的;所有函数都需要返回值。
def function_name ( parameter1,parameter2, … ): """ Docstring: 解释函数功能的可选文档。""" # 函数体 # 执行所需任务的代码 # 它可能包括语句、表达式和其他函数调用# 可选:return语句从函数返回值 中返回一个值在上面的示例中,greet 是一个函数,它采用一个参数名称并打印问候语消息。当以“Alice”作为参数调用函数时,它会打印“Hello, Alice!”。
defaddition ( x ,y ): '''这个函数是两个数字相加''' return x + y a=addition( 2 , 3 ) print (a) #Docstring print ( print .__doc__)参数:定义函数时,可以在函数定义的括号内指定参数。参数是函数调用时期望接收的值的占位符。
defgreet ( name ) : #'name'是一个参数 print ( "Hello," +name+ "!" )参数:当调用函数时,提供实际值(称为参数)以匹配函数定义中定义的参数。参数是在函数调用期间传递给函数的实际值。
greet( "Alice" ) # "Alice" 是一个参数尽管这些术语经常互换使用。请参考下面的示例:
def function_name ( parameters ): '''编写程序''' 执行一些操作 return a= function_name(arguments)默认参数:默认参数也称为默认参数,是函数定义中具有预定义值的参数。#默认参数def add ( x= 1 , y= 1 ): '''这个函数是将两个数字相加''' return x + y a=add( 2 ) print (a)2. 位置参数:当您调用函数并为其参数提供值时,这些值会根据参数在函数参数列表中的位置分配给参数。换言之,提供参数的顺序决定了它们对应于哪个参数。
#位置参数def add ( x, y, z ): '''这个函数是将两个数字相加''' return x + y +z a=add( 2 , 3 , 5 ) print (a)3. 关键字参数:关键字参数,也称为命名参数,是一种用于函数调用的参数,其中每个参数前面都有一个参数名称和一个等号 (=)。这允许您按任何顺序指定参数,而不管它们在函数的参数列表中定义的顺序如何。
#关键字参数def add ( x, y,z ): '''这个函数是将两个数相加''' return x + y+z a=add(y= 3 ,z= 5 , x= 2 ) print ( A)def 加法( x, y ): 返回x + y def 减法( x, y ): 返回x - y def 乘法( x, y ): 返回x * y def 除( x, y ): 如果y == 0 : 返回 “错误!除以零。” else : return x / y print ( "选择运算:" ) print ( "1.加法" ) print ( "2.减法" ) print ( "3.乘法" ) print ( "4.除法" ) while True : choice = input ( "输入选择 (1/2/3/4): " ) if choice in ( '1' , '2' , '3' , '4' ): num1 = float ( input ( "输入第一个数字: " )) num2 = float ( input ( "输入第二个数字:" )) if choice == '1' : print ( "结果:" , add(num1, num2)) elif choice == '2' : print ( "结果:" , minus(num1, num2)) elif choice == '3' : print ( "结果:" , 乘法(num1, num2)) elif choice == '4' : print ( "结果:" , 除( num1, num2)) break else : print ( "无效输入" ) break功能特点:非默认参数跟随默认参数:在下面的示例中,第一个参数是默认参数,下一个参数是非默认参数。所以,它会给出一个错误。def full_name ( first= 'Mike' , sur ): first_name=first.capitalize sur_name=sur.capitalize return first_name + ' ' +sur_name name= full_name(first= 'John' , sur= 'Fernandes' ) print (name) #此代码将导致语法错误:非默认参数跟随默认参数#正确的代码将是def full_name ( sur, first= 'Mike' ): first_name = first.capitalize sur_name = sur.capitalize return first_name + ' ' + sur_name name = full_name(sur= 'Fernandes' , first= 'John' ) print (name)2. 重命名函数:
#赋值def 加法( x, y ): return x + y s=add print (s) type (s) a=s( 2 , 3 ) print (a)3. 删除函数:
deladditiona =s( 2 , 3 ) print ( a ) #删除函数会报错。4. 作为另一个函数的输入:
#函数作为另一个函数的输入def addition ( a ,b ): return a + b defmultiply ( a,b ): return a * b defdivide ( a ,b): return a /b def apply_operation ( func, x , y ): return func(x, y) result1 = apply_operation(divide, 6 , 4 ) print (result1)5. 一个函数可以返回另一个函数:
#返回一个函数def outer_function ( x ): def inside_function ( y ): return x + y return inside_function add_5 = outer_function( 5 ) result = add_5( 3 ) print (result) k6. 没有 return 语句的函数:
def do_something : print ( "该函数不返回任何内容。" ) result = do_something print (结果)7. 嵌套函数:一个函数在另一个函数中
#嵌套函数def outer_function : print ( "你好,这是外部函数!" ) def inner_function : print ( "你好,我在里面" ) inner_function outer_function8. Lambda 函数/匿名函数:
#Lambda 函数add_numbers = lambda x, y: x + y结果 = add_numbers(3, 5) print(结果)偶=lambda x: x%2==0结果=偶(4)打印(结果)9. 返回 lambda 函数的函数
def create_adder ( n ): return lambda x: x + n add_5 = create_adder( 5 ) result = add_5( 7 ) print (result) #说明:https://www.youtube.com/watch?v=Ss5FPeCLfEk(解释:
https://www.youtube.com/watch?v=Ss5FPeCLfEk)
*args 和 **kwargs 是 Python 中的特殊语法,允许函数分别接受任意数量的位置参数和关键字参数。当您想要使用灵活的参数列表定义函数时,它们非常有用。
*args:(任意位置参数):
*args 用于将可变数量的位置参数传递给函数。*args 参数被视为函数内部的元组,包含传递给函数的所有位置参数。它允许您使用任意数量的位置参数调用函数。#*args 和 **kwargs def sum_numbers ( *coco ): Total = 0 for num in coco: Total += num return总结果 = sum_numbers( 1 , 2 , 3 , 4 , 5 , 6 , 7 ) print (result)**kwargs(任意关键字参数):
**kwargs 用于将可变数量的关键字参数传递给函数。**kwargs 参数被视为函数内部的字典,其中包含传递给函数的所有关键字参数。它允许您使用任意数量的关键字参数调用函数。def my_function ( **kwargs ): for key, value in kwargs.items: print ( f" {key} : {value} " ) # 使用不同数量的关键字参数调用函数my_function(name= 'Alice' ,年龄= 30 ) my_function(城市= '纽约' , 国家= '美国' , 人口= 8_623_000 )在函数签名中组合 *args 和 **kwargs 允许它接受位置参数和关键字参数的任意组合。
这在设计灵活且可重用的功能时特别有用。
范围:局部变量:Python 中的局部变量是在函数或块范围内声明的变量。它只能在该特定功能或块内访问和使用。
#局部变量def my_function : b = 20 print (b) my_function全局变量:全局变量在任何函数或块外部声明,并且可以在整个程序中访问,包括函数和块内。全局变量具有全局范围,这意味着可以从程序的任何部分访问它们,包括函数和块内部。
#全局变量a = 10 def my_function : print ( a ) my_function def my_function1 : print ( a ) my_function1可变阴影:
当在局部作用域中声明的变量与外部作用域中的变量同名时,就会发生变量阴影,从而在该局部作用域内的外部作用域中隐藏该变量。如果处理不当,这可能会导致意外行为和错误。
全局关键字:全局关键字用于声明函数中的变量属于全局作用域,这意味着它应被视为全局变量。这允许您从函数中修改全局变量的值。
#global 关键字a = 10 def Shadow_function : global a a =a+ 1 print(a) Shadow_function非本地关键字:非本地关键字用于声明嵌套函数中的变量(即在另一个函数中定义的函数)属于外部(非全局)作用域。
#nonlocal 关键字def outer_function : count = 0 def inside_function : 非局部计数 count += 1 return count return inside_function counter = outer_function print (counter) print (counter) #Output- 1 2来源:自由坦荡的湖泊AI一点号