function_name:函数的名称,遵循命名规则,通常采用小写字母,可以使用下划线来分隔单词。
parameters :函数的参数列表,可以是0个或多个参数。也可以使用默认参数和可变参数。
函数体: 函数的具体实现,可以包含多条语句,用于执行特定的任务或功能。
return result:函数的返回值,可以是一个或多个返回结果。如果没有指定返回值,函数默认返回None。
def function_name(parameters):
# 函数体
# 执行特定的任务或功能
# 可以包含多条语句
# 可以使用参数进行操作
return result
这类函数执行一些特定的任务或操作,但没有返回结果。通常通过对其他对象进行修改或者直接输出结果来实现功能。
def print_message(message):
print(message)
print_message('Hello Python') # Hello Python
result = print_message('Hello World')
print(result) # None
这类函数会执行一些操作,并返回一个或多个结果。可以使用return关键字来指定返回值。
"""
定义一个求两数和的函数返回计算结果
"""
def add_num(x,y):
return x + y
result_1 = add_num(10,10)
result_2 = add_num(1,2)
result_3 = add_num(100,99)
print(result_1) # 20
print(result_2) # 3
print(result_3) # 199
这类函数可以接收不定数量的参数。在函数定义时使用*args来表示可变参数,它们会被作为一个元组传递给函数。可以使用可变参数函数来处理不确定数量的输入。
"""
定义一个求不确定参数的求和函数并返回计算结果
"""
def add_num(*args):
result = 0
for num in args:
result += num
return result
print(add_num()) # 0
print(add_num(1,2,3)) # 6
print(add_num(1,2,3,4,5)) # 15
这类函数在定义时可以为参数指定默认值。调用函数时,如果没有提供相应参数的值,将使用默认值。可以使用默认参数函数来简化函数调用,避免重复输入常见参数值。
"""
定义一个求两数和且第一个参数默认值为0,第二个参数为10的求和函数并返回计算结果
"""
def add_num(num1=0,num2=10):
return num1 + num2
print(add_num()) # 10
print(add_num(1,2)) # 3
print(add_num(100,100)) # 200
这类函数是一种简洁的函数定义方式,通常用于定义简单的、单次使用的函数,或作为其他函数的参数。它们由lambda关键字引导,不需要使用def关键字定义。
"""
Lambda函数(匿名函数)是一种特殊的函数形式,可以在需要函数对象的地方使用,而无需显式地定义函数。Lambda函数使用关键字lambda来定义;
语法: lambda arguments: expression
arguments表示函数的参数,可以是多个参数,通过逗号分隔;
expression表示函数的返回值表达式
"""
# Lambda函数计算两个数的和
num = lambda x,y:x+y
print(num(10,10)) # 20
print(num(5,2)) # 7
划重点:Python遵循LEGB规则来解析变量的作用域,即先从局部作用域查找变量,然后是嵌套作用域、全局作用域和内置作用域。如果在当前作用域找不到变量,就会向上一级作用域继续查找,直到找到或者查找到最外层作用域。
全局作用域是在函数外部定义的变量的作用域范围,可以在程序的任何地方访问这些变量。全局变量在整个程序执行期间都是可用的。
global_var = 10
def func():
print(global_var) # 函数内部可以访问全局变量
func() # 10
print(global_var) # 10
def func2():
global_var = 100 # 不可改变全局变量
print(global_var) # 访问的是函数内部变量global_var
func2() # 100
print(global_var) # 10
局部作用域是在函数内部定义的变量的作用域范围,只能在函数内部访问这些变量。局部变量只在函数执行期间可用,函数执行完毕后,这些变量将被销毁。
def func():
local_var = 20 # 局部变量
print(local_var) # 可以访问局部变量
func()
# print(local_var) # 无法访问局部变量,会报错
嵌套作用域指的是函数中包含其他函数的情况,内部函数可以访问外部函数的变量。外部函数的变量对内部函数是可见的,但对外部函数以外的代码是不可见的。
def outer_func():
outer_var = 30
def inner_func():
print(outer_var) # 可以访问外部函数的变量
inner_func()
outer_func()
#print(outer_var) # 无法访问外部函数的变量,会报错
内置作用域是指Python解释器内部定义的一些特殊变量和函数,可以在任何地方访问这些内置函数和模块,如print()和len()等。
message = 'Hello Python'
def getLen():
print(message) # Hello Python
return len(message)
len = getLen()
print(len) # 12
述求:现有10个长宽不一的矩形,求出每一个矩形面积并打印在终端控制台
# 述求:现有10个长宽不一的矩形,求出每一个矩形面积并打印在终端控制台
# 定义一个计算面积函数
def area(length, width):
area_result = length * width
return f'长为{length},宽为{width}的面积为{area_result}'
# 计算长:10, 宽:10的面积
area1 = area(10, 10)
print(area1) # 长为10,宽为10的面积为100
# 计算长:10, 宽:15的面积
area2 = area(10, 15)
print(area2) # 长为10,宽为15的面积为150
# 计算长:6, 宽:15的面积
area3 = area(6, 15)
print(area3) # 长为10,宽为15的面积为90
# ... 传入长宽即可计算出面积,可无限次调用函数计算