函数的作用:提高代码的复用性
type() 、len()、range()
函数的语法:关键字def
函数的具体语法:
def 函数(参数1、参数2、参数3):
函数体 #本函数要实现的功能
return 表达式
return 的作用:当你调用函数的时候,会返回return后面的表达式的值
函数书写规范
def 顶格写 表示这个一个函数
#函数名 小写 不同的字母和数字之间用下划线隔开, 不能用数字开头
参数个数可以大于等于0
函数体是函数的子代码,要有缩进 写自己想实现的功能即可
return 后面的表达式大于等于0
如何调用函数 -- 函数名(对应个数的参数)
def radio():
print('你好')
return #隐式的添加一个return
res =radio() #res保存函数的返回值
print('函数的返回值:{}'.format(res))
函数里面return的表达式个数
=1:返回你指定的数据类型
>1 :返回的是元组类型
0: 返回none
def add():
result 8+8
return result #拿到结果再去跟别的值做处理的时候,需要加一个return值
#请你拿到add()运行的结果 再去加20,再输出到控制台
res = add()+20
print(res)
函数的强化
def count_number():
count =0
for i in range(1,100):
count+=i
print('计算结果是:{}'.format(count))
return 1+2 #隐式添加一个return
print(count_number())
#tips:
return后面的代码不在执行,所以我们的有效代码要放在return前面
return表示函数的结束
函数参数类型
1、位置参数
#位置参数:是有顺序的,我们通过函数传参的时候,是按顺序赋值
#形参 实参
#指定参数赋值 声明赋值 变量名要跟形参一致
#调用函数的时候,有几个位置参数就要传几个参数,不然会报错
def count_number(x): #形参
count =0
for i in range(1,x):
count+=i
print('计算结果是:{}'.format(count))
count_number(20) #实参
#默认参数 我们给形参一个默认值
优先使用实参,再使用默认值
位置参数在默认参数之前,不然会报错
2、动态参数
*args 不定长参数,想传几个就传几个,参数之间用逗号隔开
#可以传任意多个参数,不限制数据类型,参数之间用逗号隔开
#参数到了函数内部变成了元组
args 默认写这个,一定要带*号
def robot_cat(*args):
print(args)
for item in args:
print('我是叮当猫,我可以变成好多好多东西,比如有:{}.format(args))
#robot_cat('20k的offer','女朋友','龙虾')
a =[ ['20k的offer','女朋友'],['火锅','龙虾']]
b = {'name':'xiaocc','offer':'18k'}
robot_cat(*a) #类似于脱外套,只脱一层
robot_cat(*b) #取到key的值
robot_cat(*b.values()) #取到value的值
3、关键字参数
**kwargs key -value的形式 ----key word argument
#1、key value的形式参数之间用逗号隔开
#2、参数到了函数内部,变成了字典
def anyway(**kwargs):
print(kwargs)
anyway(x=1,y=2)
练习题
一家商场在降价促销。如果购买金额50-100元(包含50元和100元)之间,
会给10%的折扣,如果购买金额大于100元会给20%折扣。
编写一程序,询问购买价格,再显示出折扣(%10或20%)和最终价格
def discount(min,max,discount_1,discount_2): while True: total = input('请输入你的购买总价:') if total.isdigit(): total = int(total) if min<=total<=max: print('你购买的总价是{},可以享受{}%的折扣,优惠后的价格为{}'.format(total,discount_1,total*(1-discount_1/100))) elif total>100: print('你购买的总价是{},可以享受{}%的折扣,优惠后的价格为{}'.format(total,discount_2,total*(1-discount_2/100))) else: print('你购买的总价是{},不可以享受折扣'.format(total)) break else: print('请输入数字') discount(50,100,80,20)