#
# 主题:函数的创建与调用
#
if __name__ == '__main__':
# 创建函数
# 求解 a + b
def calc(a, b):
c = a + b
return c
# 调用函数
result = calc(10, 20)
print(result) # 30
函数的参数传递
-
位置传参
-
关键字传参
#
# 主题:函数的参数传递
#
if __name__ == '__main__':
# 位置传参
# 求解 a + b
def calc(a, b): # a,b 是形式参数,简称形参,形参的位置是在函数的定义处
c = a + b
return c
result = calc(10, 20) # 10,20 是实际参数的值,简称实参,实参的位置是在函数的调用处
print(result) # 30
# 关键字传参
result1 = calc(b = 10, a = 20) # = 左边的变量名称为关键字参数
print(result1) # 30
函数的参数传递对实参的影响
#
# 主题:函数的参数传递对实参的影响
#
def fun(arg1, arg2):
print('arg1 =', arg1)
print('arg2 =', arg2)
arg1 = 100
arg2.append(10)
print('arg1 =', arg1)
print('arg2 =', arg2)
if __name__ == '__main__':
n1 = 11
n2 = [22, 33, 44]
print(n1) # 11
print(n2) # [22, 33, 44]
print('---')
fun(n1, n2) # arg1 = 11
# arg2 = [22, 33, 44]
# arg1 = 100
# arg2 = [22, 33, 44, 10]
print('---')
print(n1) # 11 只是值传递
print(n2) # [22, 33, 44, 10] 相当于C语言中在指针层面上的数据操作
'''在函数调用过程中,进行参数的传递
若是不可变对象,则在函数体中的修改不会影响实参的值
若是可变对象,则在函数体的修改会影响实参的值'''
函数的返回值
#
# 主题:函数的返回值
#
def fun(num):
odd = [] # 存奇数
even = [] # 存偶数
for i in num:
if i % 2 == 1:
odd.append(i)
else:
even.append(i)
return odd, even
if __name__ == '__main__':
print(fun([10, 29, 34, 23, 44, 53, 55])) # ([29, 23, 53, 55], [10, 34, 44])
# 若返回值有多个结果,则返回值的类型是元组
函数定义中的形参 —— 默认值
#
# 主题:函数定义中的形参 —— 默认值
#
def fun(a, b = 10):
print(a, b)
if __name__ == '__main__':
fun(100) # 100 10 b未传参,采取默认值
fun(20, 30) # 20 30 30替换10
# print函数也有默认值参数。在代码中,按住Ctrl不放,鼠标点击print函数名进入函数定义处
print('hello')
print('python') # hello
# python
# print在字符串的末尾默认加'n'
print('hello', end = 't')
print('world') # hello world
函数定义中的形参 —— 个数可变的位置形参
#
# 主题:函数定义中的形参 —— 个数可变的位置形参
#
def fun(*args):
print(args)
if __name__ == '__main__':
# 定义函数时,可能无法事先确定传递的位置实参的个数时,使用个数可变的位置参数
# 使用一个*定义个数可变的位置形参
# 函数的返回值类型是元组
fun(10) # (10,)
fun(10, 'hello', True) # (10, 'hello', True)
''' def fun2(*args, *a):
pass
以上代码,程序会报错,可变的位置参数,只能是1个'''
函数定义中的形参 —— 个数可变的关键字形参
#
# 主题:函数定义中的形参 —— 个数可变的关键字形参
#
def fun(**args):
print(args)
if __name__ == '__main__':
# 定义参数时,可能无法事先确定传递的位置实参的个数,这时使用可变的关键字形参
# 函数的返回值是字典
fun(a = 10)
fun(a = 10, b = 'hello', c = True) # {'a': 10}
# {'a': 10, 'b': 'hello', 'c': True}
在这里插入代码片



