一、Python中的函数
1.函数定义
格式:def 函数名(形式参数列表):
函数体
示例:
# 定义了 x y 相加的函数
def add(x, y):
return x + y
2.函数调用
格式:函数名(实际参数)
question: 实际参数与形式参数的关系?
answer: 形式参数是实际参数的一份临时拷贝
3.函数参数
①缺省参数:给形式参数一个默认值,当形式参数没有被传递的时候,会默认使用缺省值.
示例:
# 自我介绍函数
def info(name, age=18):
print("my name is {}, age is {}".format(name, age))
info("小白")
info("李雷",5)
"""
运行结果:
my name is 小白, age is 18
my name is 李雷, age is 5
注意:
缺省值 必须从右往左一次填写.
"""
②不定长参数
* :将多余的参数打包成元组使用
** : 将键值对儿类型元素打包成字典
示例:
# 自我介绍函数
def show(name, age, *hobby, **family): # *将多余的参数打包成元组 **将参数打包成字典使用
print("my name is ", name)
print("age is ", age)
print("hobby :", hobby)
print("family :", family)
show("妮妮", 5, "超真实办家家酒", )
print("-----------------------------------")
show("野原新之助", 5, "动感超人", "娜娜子", "风间彻", father="野原广志", mother="野原美呀")
4.局部变量与全局变量
局部变量: 函数内部定义的变量
全局变量: 函数外部定义的变量
在函数内部修改全局变量的值:global var
示例:
money = 10
def set_money():
global money # 声明使用全局变量的money
money = 20
set_money()
print(money) # 20
5.函数的返回值
python 语言中支持一个函数返回多个值.
格式 :def 函数名():
函数体
return value1, value2, value
示例:
def operation(x, y):
add = x + y
sub = x - y
mul = x * y
div = x / y
return add, sub, mul, div
add, sub, mul, div = operation(10, 20)
print(add) # 30
print(sub) # -10
print(mul) # 200
print(div) # 0.5
6.递归函数
定义:在运行过程中,函数调用函数本身. 递归是把大问题分解成一个一个的小问题.
要求:需要有结束条件,且每递归一次都要向结束条件靠近.
使用原则:能想得到,并且不会对时间,空间造成太大的影响的时候就是用递归. 想不到就不用.
示例:
# 实现一个阶乘的计算.
def factorial(n):
if n == 1:
return 1
return n * factorial(n - 1)
ret = factorial(1500)
print(ret)
7.匿名函数
定义:函数本身没有名字,是一些轻量级的函数类别的 C语言中的 回调函数.
格式:lambda 形式参数列表: 函数体
示例:
# 定义两个数相加的匿名函数
sum = lambda x, y: x + y
print(sum(10, 20)) # 30
应用:排序(匿名函数指定比较方法)
stus = [
{"name": "zhangsan", "age": 18},
{"name": "lisi", "age": 19},
{"name": "wangwu", "age": 17}
]
stus.sort(key = lambda x : x["name"])
print(stus)
#结果:[{'name': 'lisi', 'age': 19}, {'name': 'wangwu', 'age': 17}, {'name': '