函数
函数的创建与调用
-
函数调用有没有结果取决于函数的返回值决定的(可以按住Ctrl之后指向函数查看看箭头,返回值None为无返回值)
-
定义函数返回值时使用:return
-
函数中没有return时,返回的默认值也为None
-
return后面没有内容时,返回的也为None
-
返回多个值时,return后面接返回值,用,隔开 例 return name,age,sex
-
return为结束函数的关键字,只要执行到return,就结束函数的调用,跳出函数体
# 创建一个简单的函数,输出你好
def hello():
"""
函数功能:输出你好
:return: None
"""
print('你好')
# 函数的调用
hello()
参数的传递(形式参数与实际参数)
形式参数:形式参数表示在定义函数时函数括号中的参数
实际参数:实际参数表示在调用一个函数时,函数名后面传递的参数,称为实际参数
参数定义的三种形式:
-
必须参数:
定义了几个参数就必须传入几个参数,不能多或者少
-
默认参数
在定义参数时,给参数定义一个默认值,可不传此参数,及为默认值,传了之后变为指定值
-
不定长参数
动态参数,可变参数,一般使用
*args
和*kwargs
必须参数
# 形式参数和实际参数的详解
# 定义类时,定义形式参数name,age,occupation
def introduction(name, age, occupation):
"""
这是一个自我介绍的类
:param name: 名字
:param age: 年龄
:param occupation:职业
:return:None
"""
print("My name is {},I'm {} years old,My occupation is {}".format(name, age, occupation))
# 调用函数,传入实际参数,位置传参
introduction('小明', 18, '代码搬运师')
# 指定参数传参,指定参数传入值,可不需要按照参数的位置进行参数的传入
introduction(age=18, name='小明', occupation='代码搬运师')
# 输出结果
My name is 小明,I'm 18 years old,My occupation is 代码搬运师
My name is 小明,I'm 18 years old,My occupation is 代码搬运师
默认参数
# 根据上面的函数,设置默认参数age = 18
def introduction(name, occupation, age=18):
"""
这是一个自我介绍的类
:param name: 名字
:param age: 年龄
:param occupation:职业
:return:None
"""
print("My name is {},I'm {} years old,My occupation is {}".format(name, age, occupation))
# 调用时不传入age参数,就会调用默认的18
introduction('小明', '代码搬运师')
# 调用时传入参数,就会调用传入的参数
introduction(name='小明', age=20, occupation='代码搬运师')
# 输出结果
My name is 小明,I'm 18 years old,My occupation is 代码搬运师
My name is 小明,I'm 20 years old,My occupation is 代码搬运师
可变参数
*args是可变参数,args接收的是一个tuple
**kw是关键字参数,kwargs接收的是一个dict
# 定义一个输出信息,传入不定长参数
def print_info(*args, **kwargs):
print(type(args), args)
print(type(kwargs), kwargs)
li = [1, 2, 3, 4, 5]
dic = {'name': '小明', 'age': 18, 'height': 182}
print_info(1, 2, c=3, d=4)
print_info(*li, **dic)
# 输出结果
<class 'tuple'> (1, 2)
<class 'dict'> {'c': 3, 'd': 4}
<class 'tuple'> (1, 2, 3, 4, 5)
<class 'dict'> {'name': '小明', 'age': 18, 'height': 182}
函数的返回值(return)
在python中,可以在函数体内使用return语句为函数指定返回值,该返回值可以是任何类型,并且无论return语句出现在函数的什么位置,只要得到执行,就会直接结束函数的执行
def test():
for i in range(1,10):
if i % 2 == 0:
print('{},{}是个偶数'.format(i, i))
return i
else:
pass
test()
# 输出结果
2,2是个偶数