八、函数功能
#函数:function 功能
'''
1.提高代码的重用率
2。提高开发效率
3.便于代码维护和管理
'''
#制作一个10行10列的星星
'''
def star():
j = 0
while j < 10:
# 输出1行
i = 0
while i < 10:
print('★', end='')
i += 1
# 换行
print('\n', end='')
# j自增
j += 1
star()
print('----------------------')
star()
print('----------------------')
star()
'''
#定义函数的基本格式:
'''
def 函数名():
python代码
python代码
python代码
...
'''
#本质上函数名就是变量而已
def myfunc():
pass
print(myfunc,type(myfunc))
'''
1.推荐使用英文禁止使用中文
2.可以使用数字,但是不能以数字开头
3.不可以使用特殊字符,除了——
4.变量严格区分大小写
5.变量命名要有意义
6.不能和系统已知的关键字冲突!
7.不能和系统已存在的函数重名
'''
#函数
#关键字参数:在传入实参的时候制定接收的形参,这种方式就是关键字参数!
def chuanqi(wuqi,yifu,yaodai,xiezi,shouzhuo,jiezhi,xianglian):
print('手上拿着',wuqi)
print('身上穿着',yifu)
print('腰上系着',yaodai)
print('脚上穿着',xiezi)
print('手腕戴者',shouzhuo)
print('手指戴着',jiezhi)
print('脖子上带着',xianglian)
#调用函数
chuanqi(yaodai='皮带',xiezi = '草鞋',wuqi = '宝刀',yifu = '霓裳羽衣',xianglian = '狗链',shouzhuo = '手镯',jiezhi = '戒指')
#计算任意个数字的和的函数(收集参数)
def mytotal(*no):
#声明一个统计和的变量
he = 0
#遍历no的所有数据(内部是一个元祖)
for i in no:
he += i
#循环结束后输出结果
print(he)
#调用函数
mytotal(1,2,3,4,5,6,100,200)
#收集参数到底接收什么样的实参? 只有没有型参接收的实参,才会被收集参数接收!
def demo(a,b,c,*args):
print(a,b,c)
print(args)
#调用函数
demo(1,2,3,4,5,6,7,8)
#关键字收集参数
def mycar(**args):
print(args)
#调用函数
mycar(chf = '拖拉机',jwd = '手扶拖拉机',wrd = '手推车' , gzj = '凯迪拉客' ,wtb = '购物车')
#计算任意个人的财产的和(必须以关键字参数方式传入实参)
def summoney(**persons):
#print(persons)
#累加变量
total = 0
#遍历字典中的所有数据
for k,v in persons.items():
total += v
#打印结果
print(total)
#调用函数
summoney(mqz = 2 ,gx = 12 ,zs = 250 ,wwz = 312 ,wfp = -2, gsb = 10 )
#关键收集参数,接收什么样的参数? 关键字收集参数也仅仅接收没有任何型参接收的关键字参数
def demo(a,b,c,**no):
print(a,b,c)
print(no)
#调用函数
demo(a = 10,c = 2,d = 5,e =7,f = 9,z = 8,p = 3,b = 12)
#测试普通形参,收集参数,关键字收集参数的共存问题。
#普通形参,收集参数,关键字收集参数 -> 都是形参
#普通实参,关键字参数 ->都是实参
#普通实参 ->可以被普通形参和收集参数接收!
#关键字参数 ->可以被普通形参和关键字收集参数接收!
def demo(a,b,c,*arg1,**arg2):
pass
#调用函数
demo(10,20,50,d = 15 ,e = 55, f = 99,c = 8)
'''
1.三种形参可以在一个函数中共存!~
2.两种实参也可以在一个函数的调用中共存!
3.实参中,普通实参必须位于关键字实参之前!
4.实参中,不可以为同一个形参传送2个以上的值!(同一个形参只能接收一个实参,2个报错!)
5.收集参数可以在普通形参之前,也可以在普通形参之后!
6.收集参数必须在关键字收集参数之前!
7。普通形参只能出现在收集参数的前面或者后面!
'''