1.如何用函数:先定义函数,后调用
定义函数:定义过程,只检测语法,不执行代码
def 函数名(x,y`····)
'''
函数功能的描述信息
x:描述
y:描述
return:返回值
'''
code 1
code 2
code 3
···
return 返回值
函数名(x,y···) #调用函数,此阶段才执行代码
2.定义函数的三种形式
空函数:当你只知道你需要实现某个功能,但不知道该如何用代码实现时,可以先定义一个空函数。
def func()
pass
有参函数:定义时有参,意味着调用时也必须传入参数。
def sum_self(x,y):
'''求和'''
res=x+y
print(res)
sum_self(1,2) #3
无参函数:定义时无参,意味着调用时候也无需传入参数
def func():
print('hello nick')
func() #hello nick
3.函数的调用
为了使用函数的功能,我们得调用函数。
函数名() 即调用函数,会执行函数体代码,直到碰到return或者执行完函数体内所有代码结束。
函数运行完毕所有代码,如果函数体不写return,则会返回None
def foo():
pass
print(foo()) #None
函数调用的三种形式
def max_self(x,y):
if x>y:
else:
return y
#1
max_self(1,2)
#2
res=max_self(1,2)*12
#3
max_self(max_self(2000,3000),4000)
4.函数的参数
1.形参和实参:
形参就是在函数定义阶段括号内的参数,称之为形式参数,简称形参,本质就是变量名。
def func(x,y):
print(x)
print(y)
实参:在函数调用阶段括号内传入的参数,称为实参,本质就是变量的值。
func(1,2)
2.位置参数:位置形参和位置实参,函数定义阶段按照从左到右的顺序依次定义的形参,称为位置形参;按照位置定义的形参,都必须被传值,多了少了都不行。在函数调用阶段,按照从左到右的顺序依次定义的实参,称为位置实参。按照位置为对应的形参依次传值。
3.关键字参数:
在调用函数时,按照key=value的形式为指定的参数传值,称为关键字实参。可以打破位置的限制,但仍能为指定的形参赋值。
func(y=2,x=1)
func(x,y=2)
func(y=2,x) #报错,默认参数必须在位置参数右边
4.默认形参:在定义阶段,就已经被赋值了;默认参数的值通常是不可变类型
def register(name,hobby,hobby_list=[]):
hobby_list.append(hobby)
print(f'{name} prefer {hobby}')
print(f'{name} prefer {hobby_list}')
register('nick','read')
register('tank','zuipao')
register('jasion','piao')
运行结果:
nick prefer read
nick prefer ['read']
tank prefer zuipao
tank prefer ['read', 'zuipao']
jasion prefer piao
jasion prefer ['read', 'zuipao', 'piao']
def register(name,hobby,hobby_list=None):
if hobby_list is None:
hobby_list=[]
hobby_list.append(hobby)
print(f"{name} prefer {hobby}")
print(f"{name} prefer {hobby_list}")
register('nick','read')
register('tank','zuipao')
register('jasion','piao')
运行结果:
nick prefer read
nick prefer ['read']
tank prefer zuipao
tank prefer ['zuipao']
jasion prefer piao
jasion prefer ['piao']
位置形参必须放在默认形参的左边
5.函数的返回值
return返回一个返回值,如果没有返回值,返回None
return会终止函数,不运行下面的代码,假设有多个return的时候,运行到第一个就结束。
return通过逗号隔开,可以返回多个值,返回值以元组的形式接收。
def guess():
x=20
y=30
if x>y:
return x
else:
return y
num=guess()
print('num:',num)
z=2
print(z*num)
浙公网安备 33010602011771号