一 函数的理解和意义
函数是将一段可重复使用的代码进行封装的、可通过调用来执行的一种行为。执行行为的前提是行为本身存在,也就是说函数的执行必须是先声明后调用函数声明用def来表示
函数的参数类
1.位置参数
def party(area, person, wine):
'''聚会的函数'''
print("今晚消毒,放假")
print("晚上聚会")
print("地点:", area)
print("参与人员:", person)
print("有了酒,就有了故事.....", wine)
#函数的调用过程
party('天上人间', ['老刘', '花花'], '二锅头')
2.默认参数
#2. 默认值参数
def party(person, wine='二锅头', area='天上人间'):
'''聚会的函数'''
print("今晚消毒,放假")
print("晚上聚会")
print("地点:", area)
print("参与人员:", person)
print("有了酒,就有了故事.....", wine)
party('老刘', '二锅头', '皇家一号')
party('老刘', '82年的拉菲')
party('老刘')
3.可变参数:可以接受0~n个数据 用*表示
#3. 可变参数:可以接受0~n个数据
def party(name, *things):
print("参与人员:", name)
print("使用资源:", things)
party('老刘')
party('老刘', '蜡烛')
party('老刘', '蜡烛', '拉菲')
party('老刘', '花花', '蜡烛', '拉菲', '披萨', '菲力牛排')
4.关键字参数:可以接受0~n个键值对数据 用**表示
#4. 关键字参数:可以接受0~n个键值对数据
def party(name, **things):
print("参与人员:", name)
print("使用资源:", things)
party('老刘')
party('老刘', wine='二锅头')
party('老刘', wine='拉菲/82', girl='花花')
5. (号称)万能参数
# 5. (号称)万能参数
def party(*args, **kwargs):
print(args) # args: arguments 参数
print(kwargs)# kwargs: key word arguments 关键字参数
party()
party('老刘')
party('老刘', girl='花花')
party('老刘', '花花', wine='拉菲', food='牛排')
party('老刘', '花花', jiu='拉菲', shi_wu='牛排')
6. 强制关键字参数~ 不是可变参数 用*,+变量名表示
# 6. 强制关键字参数~ 不是可变参数
def party(name, *, wine, food):
print(name)
print(wine)
print(food)
party('老刘', wine='二锅头', food='牛排')
party('老刘', food='牛排', wine='二锅头')
# party('老刘', jiu='二锅头', shi_wu='牛排') # ERROR
#注意:强制关键字后面的参数名称一旦确定,就不能用其他名称表示了
二 函数的四种基本操作方式
1.不需要参数,不需要返回值
#先声明一个函数,后调用
def buy_somke():
'''第一种:不需要资源,不需要返回结果'''
print('今天买了万宝路')
#调用函数
buy_somke()
2.不需要参数,需要返回值
def eat():
'''第二种,不需要资源,需要返回结果'''
print('今天吃了满汉全席')
return '满汉全席'
#调用函数
chi=eat()
print('今天吃了什么?',chi)
3.需要参数,不需要返回值
def go_shop(yi_fu,morne):
'''第三种,需要资源,不需要返回结果'''
print('买的什么衣服',yi_fu)
print('花了多少钱',morne)
print('今天很开心')
#调用函数
go_shop('晚礼服',12000)
4.需要参数,需要返回值
def bu_smoke(name,money):
if 10<money<13:
print('可以买万宝路')
res='万宝路'
elif money<10:
print('买个棒棒糖戒烟吧')
res='棒棒糖'
else:
print('可以买黄金叶')
res='黄金叶'
print('我买的是:',name)
return res