一、函数参数和返回值的作用
函数根据有没有参数以及有没有返回值,可以相互组合一共有4种组合方式:
1.无参数,无返回值
2.无参数,有返回值
3.有参数,无返回值
4.有参数,有返回值
如果函数内部处理的数据不确定,就可以将外界的数据以参数传递到函数内部,如果希望一个函数执行完成后,向外界汇报执行结果,就可以增加函数的返回值。
代码示例如下:
# 无参数 无返回值
def test1():
print('hello')
# 无参数 有返回值
def test2():
return 'hello'
# 有参数 无返回值
def test3(num):
print(num)
# 有参数,有返回值
def test4(num):
num += 1
return num
test1()
print(test2())
test3(2)
print(test4(2))
输出:
hello
hello
2
3
二、函数的参数
1.不可变和可变参数
无论传递的参数是可变还是不可变,只要针对参数使用赋值语句,会在函数内部修改局部变量的引用,不会影响到外部变量的引用。
代码示例如下:
def test(num, list):
num = 100
list = [1, 2, 3]
print(num)
print(list)
num = 10
list = [4, 5, 6]
test(num, list)
# 打印全局变量
print(num)
print(list)
输出:
100
[1, 2, 3]
10
[4, 5, 6]
如果传递的参数可变类型,在函数内部使用方法修改了数据,同样会影响到外部的数据。
代码示例如下:
def test(num, list):
num = 100
# 修改数据会影响外部的数据
list[0] = 1
print(num)
print(list)
num = 10
list = [4, 5, 6]
test(num, list)
# 打印全局变量
print(num)
print(list)
输出:
100
[1, 5, 6]
10
[1, 5, 6]
2.缺省参数
定义函数的时候,可以给某个参数指定一个默认值,具有默认值的参数就叫缺省参数。调用函数时如果没有传入缺省参数的值,则在函数内部使用定义函数时指定的参数默认值。
代码示例如下:
def test(name, status=1):
print('我的姓名:%s,状态:%d' % (name, status))
# 调用函数 没有传入缺省参数 使用参数默认值
test('qx')
输出:
我的姓名:qx,状态:1
注意事项:
缺省参数必须在参数列表末尾。
3.不定长参数
有时候函数需要处理参数个数不确定的情况,这个时候我们可以使用多值参数。参数名前加一个可以接收元组,参数名前添加两个可以接收字典。
代码示例如下:
def test(*num):
for i in num:
print(i)
# 调用函数 没有传入缺省参数 使用参数默认值
test(1, 2, 3, 4)
输出:
1
2
3
4
三、函数的递归
函数的递归就是在函数内部调用自己,函数内部的代码是相同的只是针对参数不同处理的结果不同,当参数满足一个条件时,函数不再执行。
代码示例如下:
# 定义递归函数
def test(num):
# 满足条件 退出递归
if num == 1:
return 1
return num + test(num - 1)
print(test(4))
输出:
10
标签:进阶,Python,函数,list,test,num,参数,print,入门
From: https://blog.51cto.com/u_13312531/7696088