目录
一.函数的定义
二.函数的参数传递
三.函数的返回值
四.函数的参数定义
一.函数的定义
def 函数名(参数列表):
函数体
- 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。
- 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
- 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
- 函数内容以冒号 : 起始,并且缩进。
- return [表达式] 结束函数,选择性地返回一个值给调用方,不带表达式的 return 相当于返回 None。
二.函数的参数传递
def calc(a, b): # a,b称为形式参数,简称形参,形参的位置是在函数的定义处
c = a + b
return c
result = calc(10, 20) # 10,20称为实际参数的值,实参的位置是函数的调用处
print(result) # 30
res = calc(b=40, a=10) # =左侧的变量名称称为 关键字参数
print(res) # 50
三.函数的返回值
1.如果函数没有返回值(函数执行完毕之后,不需要给调用处提供数据,return可以忽略不写)
def fun():
print('hello')
fun()
2.函数的返回值,如果是1个,直接返回类型
def fun2():
return 'hello,world'
res = fun2()
print(res) # hello,world
3.函数的返回值,如果是多个,返回的结果为元组
def fun3():
return 'hello','world'
print(fun3())#('hello', 'world')
四.函数的参数定义
- 个数可变的位置参数,可变的位置参数只能是一个,使用*定义个数可变的位置形参,结果为一个元组
*args的用法:当传入的参数个数未知,且不需要知道参数名称时。
def fun(*args):#函数定义时,可变的位置参数
print(args)
# print(args[0])
fun(10)
fun(10,30)
fun(30,400,900)
打印结果:
(10,)
(10, 30)
(30, 400, 900)
- 个数可变的关键字形参,使用**定义个数可变的关键字形参,结果为一个字典
**args的用法:当传入的参数个数未知,但需要知道参数的名称时(立马想到了字典,即键值对)
def fun1(**args):
print(args)#字典类型
fun1(a=10)
fun1(a=20,b=20,c=30)
{'a': 10}
{'a': 20, 'b': 20, 'c': 30}
def fun(a, b=10): # b是在函数的定义处,b是形参,而且进行了赋值,b称为默认值形参
print('a', a)
print('b', b)
def fun2(*args): # 个数可变的位置形参
print(*args)
def fun3(**args2):
print(args2)
fun2(10, 20, 30)
fun3(a=11, b=22, c=33, d=44, e=65)
def fun4(a,b,*,c,d):#从*之后的参数,在函数调用时,只能采用关键字参数传递
print('a=', a)
print('b=', b)
print('c=', c)
print('d=', d)
# fun4(10,20,30,40)#位置实参传递
fun4(a=10,b=20,c=50,d=90)#关键字实参传递
fun4(10,20,c=30,d=40)#前两个参数,采用的是位置实参传递,而c,d采用的是关键字实参传递