前言
函数是一段有名字的代码块,用于执行特定的任务。函数可以接受输入参数,执行操作,并返回输出结果。函数可以重复使用,并且可以提高代码的可读性和维护性。
函数的目的是为了封装特定的功能或任务,以便在需要时可以重复调用。
函数的声明是指在函数体之前的函数名称、参数列表和返回类型的描述。
实参是在函数调用过程中传递给函数的实际值。在函数定义时,形参用来指定函数可以接受的参数类型和个数,而在函数调用时,实参就是具体传递给函数的值。
指定参数类型都有助于确保函数在调用时接收正确类型的参数,以提高程序的健壮性和可靠性。
匿名函数的运用可以使代码更加简洁、灵活,并且减少定义不必要的函数名称,提高代码的可读性和维护性。
一、函数的目的和定义
1.函数的目的
函数的目的是为了封装特定的功能或任务,以便在需要时可以重复调用。函数可以接受输入参数,并根据这些参数执行特定的操作,并返回一个输出结果。通过使用函数,我们可以将复杂的问题划分为更小的模块,使代码更加模块化、可维护和可重用。函数可以提高代码的可读性,避免重复的代码,并使程序更简洁和高效。
2.函数的定义
定义一个函数通常需要使用以下格式:
def 函数名(参数1, 参数2, ...):
函数体
return 返回值
# 函数名可以自行定义,但最好是有一定意义的函数名
其中,def
关键字用来定义函数,紧接着是函数名,然后是一对圆括号,括号内可以包含多个参数,多个参数之间用逗号分隔。函数体是函数的具体实现代码,可以包含多条语句,需要使用缩进来表示代码块。函数体中可以使用return
关键字来返回函数的结果,也可以没有return
语句。
二、函数的声明和调用
1.函数的声明
函数的声明是指在函数体之前的函数名称、参数列表和返回类型的描述。函数声明主要用于告诉编译器函数的存在和函数的类型,以便在需要调用函数时能够正确使用和链接函数。函数声明的语法通常包括函数的返回类型、函数名称和参数列表。例如,下面是一个函数声明的示例:
int add(int a, int b);
在这个例子中,函数的返回类型是int,函数的名称是add,函数的参数列表是两个int类型的参数a和b。函数声明一般放在函数的定义之前进行,这样在其他代码中调用函数时就可以通过函数声明来引用函数。
2.函数的调用
函数的调用是指使用函数的名称来执行函数的代码。调用函数时,需要在函数名称后面加上一对括号,括号中可以传递给函数的参数。
def():
def hello():
'''
在此写注释 来说明函数的用法
:return:
'''
for i in range(10):
print(f'你好')
# 调用该函数
hello()
# 函数名可以自行定义
三,函数的形参和实参
1.形参
形参是指在函数定义中声明的参数,用于接收调用函数时传递的实参。形参用于在函数内部进行操作和计算,并可以在函数内部修改其值。形参的名称在函数定义中可以任意起名,但调用函数时必须传递相应的实参进行匹配。形参的个数和类型可以根据函数定义的需要而定。形参的作用是允许函数在被调用时接收和处理外部传递的数据。
def hello(name, num):# 括号内的就是形参,在后续运算中可以用它
'''
打印你好
:return:
'''
# name = '你好'
for i in range(num):
print(f'{name},起床上课啦')
# 使用该声明的函数
hello('你好', 5)
2.实参
实参是在函数调用过程中传递给函数的实际值。在函数定义时,形参用来指定函数可以接受的参数类型和个数,而在函数调用时,实参就是具体传递给函数的值。实参可以是常量、变量、表达式或函数等。当函数被调用时,实参的值会被赋给对应的形参,然后函数就可以使用这些值进行操作。实参的数量和类型必须与形参的数量和类型相匹配,否则会导致编译错误或运行时错误。
def hello(name, num):
'''
打印你好
:return:
'''
# name = '你好'
for i in range(num):
print(f'{name},起床上课啦')
# 使用该声明的函数
hello('你好', 5)# 实参,标明把'你好'赋值给name,5赋值给num
四,函数的参数类型
(1)位置参数
位置参数是指在定义函数时,参数的顺序必须与调用函数时传递的参数的顺序一致。当调用函数时,必须按照定义函数时参数的顺序进行传递,否则会发生错误。位置参数是函数定义中最普通的参数类型
例:以下函数定义了两个位置参数x和y:
在调用这个函数时,必须按照参数的位置传递数值
在这个例子中,3和5分别传递给了函数的第一个和第二个位置参数x和y,函数会返回8。
def add(x, y):
return x + y
add(10,20)
# 把10,20分别赋予x,y
(2)默认参数
默认参数是在定义函数时给参数一个默认值,当调用函数时,如果没有传递该参数的值,函数会使用默认值进行处理。默认参数可以简化函数的调用,避免频繁传递相同的参数值。
def wake_up(name, n=1, info='起床锻炼'):
# 默认形参变量只能放在不默认的后面
for i in range(n):
print(f'{name},wake up,{info}')
wake_up('小王', 5, '元神启动')
在上面的例子中,wake_up 函数定义了三个参数,name,n和info
,其中n有一个默认值1。当调用wake_up 函数时,如果不传递n
参数,将使用默认值1;如果传递了n
参数,将使用传递的值。这里传递了n=5。
(3)关键字参数
关键字参数是一种在调用函数时指定参数的方式,通过关键字进行参数的匹配,而不是按照位置进行参数的传递。使用关键字参数可以避免参数位置的混淆,提高代码的可读性。
在函数定义时,可以使用关键字参数来指定默认值。
在函数调用时,可以使用关键字参数来明确指定参数的值,而不必按照参数的顺序来传递。
例如,定义一个计算矩形面积的函数:
def calculate_area(length, width):
return length * width
使用关键字参数调用函数:
calculate_area(length=10, width=5)
关键字参数可以不按照函数定义的顺序进行传递,并且可以只传递部分参数,未指定的参数将使用默认值。
例如,定义一个打印个人信息的函数:
def print_info(name, age, city="Beijing"):
print("Name:", name)
print("Age:", age)
print("City:", city)
使用关键字参数调用函数:
print_info(age=20, name="Alice")
这样可以清晰地表达出函数参数的含义,提高代码的可读性和可维护性。
(4)*args 可变元组参数
*args
是一个特殊的语法,可以在函数定义中接收任意数量的位置参数。它会将传入的参数打包成一个元组,供函数内部使用。
下面是一个简单的示例:
def print_args(*args):
for arg in args:
print(arg)
print_args(1, 2, 3)
输出:
1
2
3
在这个例子中,*args
可以接受任意数量的位置参数,并将它们打包成一个元组(1, 2, 3)
。函数内部使用for
循环遍历这个元组并打印每个元素。
(5)**kwargs 字典参数
**kwargs参数是Python函数中的一种特殊参数,它允许函数接受任意数量的关键字参数。在函数内部,**kwargs参数会将这些关键字参数转换为一个字典形式的变量,可以通过字典的键值对来访问和操作这些参数。
使用**kwargs参数的语法如下:
def func_name(**kwargs):
# function body
在调用函数时,可以通过键值对的形式传递关键字参数。这些关键字参数会被转换为字典形式的变量,传递给函数中的**kwargs参数。在函数内部,可以通过字典的键值对来访问和操作这些参数。
func_name(arg1=value1, arg2=value2, ...)
以下是一个示例,演示了如何使用**kwargs参数:
def print_values(**kwargs):
for key, value in kwargs.items():
print(key, value)
print_values(name='Alice', age=25, city='New York')
输出结果:
name Alice
age 25
city New York
(6)函数返回值
函数的返回值是函数执行完毕后所返回的结果。在函数内部使用return语句可以将一个值返回给函数的调用者。调用函数时可以将返回值保存在一个变量中,或者直接使用返回值进行其他操作。返回值可以是任意数据类型,包括数字、字符串、列表、字典等。如果函数没有使用return语句返回值,则默认返回None。
注意!!!!!函数中出现return不仅会打断循环,也会把函数中断
五,匿名函数
匿名函数是一种没有名称的函数,它可以在需要函数的地方被直接使用,而不必定义一个具体的函数名称。匿名函数通常用于简单的逻辑操作或者作为参数传递给其他函数。
匿名函数的运用包括:
-
作为参数传递给其他函数:匿名函数可以作为参数传递给其他函数,用于在函数内部执行一些逻辑操作。这样可以避免定义一个具体的函数名称,使代码更加简洁。
-
使用lambda表达式创建匿名函数:在Python中,可以使用lambda关键字来创建匿名函数。lambda表达式的语法为:lambda 参数: 表达式。通过lambda表达式可以快速创建简单的匿名函数。
-
函数式编程中的高阶函数:匿名函数在函数式编程中非常常见,它可以使函数更加灵活。通过将匿名函数作为参数传递给高阶函数,可以实现更加复杂的逻辑操作,如map、reduce和filter等。
总之,匿名函数的运用可以使代码更加简洁、灵活,并且减少定义不必要的函数名称,提高代码的可读性和维护性。
总结
函数的作用主要是封装可重复使用的代码,提高代码的复用性和可维护性。通过定义函数,可以将一段代码逻辑封装起来,然后在需要的时候调用函数来执行这段代码,避免了重复编写相同的代码。函数可以接收输入参数,并返回输出结果,可以通过参数来控制函数的行为,通过返回值来获取函数的结果。函数的作用还包括:
正确熟练的利用函数,可以提高编程效率,提供程序的复用!
标签:函数,代码,定义,无限,参数,print,可以,name From: https://blog.csdn.net/2401_86120670/article/details/140476349