- pycharm 自动格式化快捷键:
ctrl+alt+L
函数调用
- function_name:函数名称
- parameter_value:可选,指定各个参数的值
function_name([parameter_value])
参数传递
- 形式参数:定义函数时,函数名称后面括号中的参数
- 实际参数:调用函数时,函数名称后面括号中的参数
# a, b, c 为形式参数
def demo_func(a, b, c):
print(a, b, c)
# 1, 2, 3 为实际参数
demo_func(1, 2, 3)
位置参数
- 数量必须与定义时一致
- 位置必须与定义时一致
def demo_func(a, b, c):
print(a, b, c)
# 1 赋值给 a, 2 赋值给 b, 3 赋值给 c
demo_func(1, 2, 3)
关键字参数
- 使用形式参数的名字确定输入的参数值
- 不需要与形式参数的位置完全一致
def demo_func(a, b, c):
print(a, b, c)
demo_func(a=1, b=2, c=3)
为参数设置默认值
- 定义函数时可以指定形式参数的默认值
- 指定默认值的形式参数必须放在所有参数的最后,否则会产生语法错误
-
param=default_value
:可选,指定参数并且为该参数设置默认值为 default_value
def function_name(..., [param=default_value]):
[function_body]
函数返回值
value:可选,指定要返回的值
def function_name([parameter_list]):
[''' comments ''']
[function_body]
return [value]
课后练习
- 自定义一个函数,并调用
def study():
return 100
b = study()
print(b) #100
可变参数
- 可变参数也称为不定长参数
- 传入函数中实际参数可以是任意多个
- 常见形式
*args
**kwargs
*args
- 接收任意多个实际参数,并将其放到一个元组中
- 使用已经存在的列表或元组作为函数的可变参数,可以在列表的名称前加
*
def print_language(*args):
print(args)
print_language("python", "java", "php", "go") #('python', 'java', 'php', 'go')
params = ["python", "java", "php", "go"] #('python', 'java', 'php', 'go')
print_language(*params)
**kwargs
- 接收任意多个类似关键字参数一样显式赋值的实际参数,并将其放到一个字典中
- 使用已经存在字典作为函数的可变参数,可以在字典的名称前加
**
def print_info(**kwargs):
print(kwargs)
print_info(Tom=18, Jim=20, Lily=12)
params = {'Tom':18, 'Jim':20, 'Lily':12}
print_info(**params)
#打印的结果都为:{'Tom': 18, 'Jim': 20, 'Lily': 12}