前言
本片文章主要介绍Python函数的一下内容:
函数定义语法、函数调用、函数参数、参数传递方式、参数类型、可变参数、函数返回值、函数说明文档、作用域
1. 函数定义语法
def 函数名(参数):
函数体
return 返回值
eg:定义两个数求和的函数
def sum(a, b):
return a + b
2. 函数调用
语法:
函数名(参数)
注意:在python中,函数必须先定义,后调用
sum = sum(2, 4)
print(sum)
>>> 6
3. 函数参数
-
函数定义的参数个数必须和调用函数传入的值个数保持一致
-
如果指定了函数的参数,在调用函数的时候,没有传入相对应的值,则会报错
-
在没有传入函数值的情况下,可以对函数参数设置默认值
4. 函数参数的传递方式
- 位置参数,以正确的顺序传入函数,调用时的数量必须和声明时一样
def sum(a, b):
print(f"a={a}")
print(f"b={b}")
return a+b
print(sum(1, 4))
>>> a=1
>>> b=4
>>> 5
- 关键字参数,允许函数调用时的参数的顺序和声明不一致
def sum(a, b):
print(f"a={a}")
print(f"b={b}")
return a+b
print(sum(b=4, a=1))
>>> a=1
>>> b=4
>>> 5
5. 函数的参数类型
在python中函数的参数类型可以为任意类型
eg:
# 定义函数
def myFunc(num):
# 调用函数
num可以为任意类型,可为int,也可为str,list,set,tuple,dict
6. 函数可变参数
在某些情况下,函数的参数的个数是不固定的。可以传入参数,也可以选择不传入参数。既可以传递一个参数,也可以传递多个参数。
- 包裹位置传递(返回类型为
tuple
)
语法:
def 函数名(*args):
代码块
# 求多个值的和
def mySum(*num):
print(num)
sum = 0
for i in num:
sum += i
return sum
print(mySum(1, 2, 3, 4))
>>> (1, 2, 3, 4)
>>> 10
- 包裹关键字传递(返回类型为
dict
)
语法:
def 函数名(**kwargs):
代码块
def test(**kwargs):
print(kwargs)
test(name="张三", age=18)
>>> {'name': '张三', 'age': 18}
7. 函数返回值
def 函数名():
return 结果
注:返回结果可以是一个值,也可以是另一个函数
def sum(*a):
sum = 0
for i in a:
sum += i
def myPrint():
print(f"计算的结果为:{sum}")
return myPrint()
sum(1, 2, 3)
>>> 6
8. 函数的说明文档
类似Java中的每个方法都会有个说明,说明该方法的作用
定义函数说明语法:
def 函数名(参数):
"""
函数文档说明
"""
代码块
注:可使用help()函数来查看函数的说明文档
def mysum(a, b):
"""
求两个数的和
:param a: 参数一
:param b: 参数二
:return:两个参数的和
"""
return a+b
print(help(mysum))
>>> mysum(a, b)
求两个数的和
:param a: 参数一
:param b: 参数二
:return:两个参数的和
9. 变量作用域
变量作用域分为两种:
- 全局作用域
- 函数作用域
注:全局作用域不能调用函数作用域中的变量,但是函数作用域可以调用全局作用域中的变量;若在函数作用域中修改全局作用域中的值,则使用global
声明
eg:
a=1 #全局作用域
def sum():
b=2 #局部作用域
global a #声明a为全局作用域
a=2 #直接改a的值会出错
10. 递归
简单地说:函数内部,自己调用自己
案例:求1-100的整数和
def test(a):
"""递归求和"""
if a == 1:
return 1
return a + test(a-1)
print(test(100))
>>> 5050
以上就是此篇文章的全部内容了,如有不足的地方欢迎在评论区补充!