一、概述
(一)可以使用input( )和print( )函数
(二)结构清晰,代码精简
二、定义函数
使用def定义函数 |
(一)定义函数
1.没有参数的情况下
def add():
result = 11 + 22
print(result)
2.有参数的情况下
def add_modify(a, b):
result = a + b
print(result)
(二)调用函数
函数名([参数列表]) |
add()
add_modify(10, 20)
三、函数参数传递
位置参数传递、关键字参数传递、默认参数传递、参数的打包与解包以及混合传递。
(一)位置参数的传递
def get_max(a, b):
if a > b:
print(a,"是较大的值!")
else:
print(b,"是较大的值!")
get_max(8, 5)
(二)关键字参数的传递
def connect(ip, port):
print(f"设备{ip}:{port}连接!")
connect(ip="127.0.0.1", port=8080)
可以用符号“/”来区别到底是关键字传参还是位置传参
(三)默认参数的传递
函数在定义时可以指定形参的默认值,如此在被调用时可以选择是否给带有默认值的形参传值,若没有给带有默认值的形参传值,则直接使用该形参的默认值。
def connect(ip, port=8080):
print(f"设备{ip}:{port}连接!") #定义
connect(ip="127.0.0.1")
connect(ip="127.0.0.1", port=3306) #调用
(四)参数的打包与解包
1.打包
(1)“**”或使用*args和**kwargs。
(2)如果*args和**kwargs为空,即它们为空元组或空字典。
2.解包
(1)实参是元组 → 可以使用“*”拆分成多个值 → 按位置参数传给形参
(2)实参是字典 → 可以使用“**” 拆分成多个键值对 → 按关键字参数传给形参
(五)混合传递
优先按位置参数传递的方式,然后按关键字参数传递的方式,之后按默认参数传递的方式,最后按打包传递的方式。
四、函数的返回值
(一)如果函数使用return语句返回了多个值,那么这些值将被保存到元组中。
def move(x, y, step):
nx = x + step
ny = y - step
return nx, ny # 使用return语句返回多个值
result = move(100, 100, 60)
print(result) #调用
五、变量作用域
(一)局部变量
不同函数内部可以包含同名的局部变量,这些局部变量的关系类似于不同目录下同名文件的关系,它们相互独立,互不影响。
def test_one():
number = 10
print(number) # 访问test_one()函数的局部变量number
def test_two():
number = 20
print(number) # 访问test_two()函数的局部变量number
test_one()
test_two()
(二)全局变量
1.全局变量可以在整个程序的范围内起作用,它不会受到函数范围的影响。
number = 10 # 全局变量
def test_one():
print(number) # 函数内部访问全局变量
test_one()
print(number)
2.全局变量在函数内部只能被访问,而无法直接修改。