函数
函数的定义与调用
def caladd(a, b):
c = a + b
return c
res = caladd(5, 5)
print(res)
res = caladd(b=10, a=5)
print(res)
函数的参数传递
def fun(arg1, arg2):
print(arg1, arg2)
arg1 = 100
arg2.append(10)
print(arg1, arg2)
return
n1 = 10
n2 = [1, 2, 3]
print(n1, n2)
fun(n1, n2)
print(n1, n2)
"""
函数调用过程中,进行参数的传递
如果是不可变对象,函数体内的修改不会影响实参的值
如果是可变对象,函数体内的修改会影响实参的值
"""
函数返回值
"""
函数的返回值
如果函数没有返回值,return可以省略
函数返回值数量为1,直接返回该类型
函数返回值数量为多个,返回元组
"""
def fun1(a, b):
return a + b
def fun2(a, b):
return a * a, b * b
print(fun1(10, 10))
print(fun2(10, 10))
函数的参数定义
def fun(a, b=10):
return a, b
print(fun(5))
print(fun(5, 6))
def fun2(*args):
print(args)
for arg in args:
print(arg)
fun2(1, 2, 3)
def fun3(**args):
print(args)
for arg in args:
print(arg)
fun3(a=10, b=20, c=30)
def fun4(*arg1, **agr2):
pass
参数使用总结
# 位置实参与关键字实参
def fun(a, b, c):
print(a, b, c)
# 位置参数实参
fun(1, 2, 3)
# 将列表中的每个元素都转为位置实参
list1 = [10, 20, 30]
fun(*list1)
# 关键字参数实参
fun(a=4, b=5, c=6)
# 将字典中的每个元素都转为关键字实参
dict1 = {"a": 7, "b": 8, "c": 9}
fun(**dict1)
# 关键字形参;从*之后的参数,传入时必须使用关键字实参
def fun2(a, b, *, c, d):
print(a, b, c, d)
fun2(1, 2, c=3, d=4) # 后两个参数必须使用关键词实参
变量作用域
def fun(a, b):
c = a + b
print(c)
name = "Python"
def fun2():
print(name)
fun2()
def fun3():
global age
age = 20
print(age)
fun3()
print(age)