o1_函数的默认参数,多值参数.py

 1 #  Learner BM
 2 """
 3 函数的默认参数,定义函数时候,如果一个参数的数据大多数情况下不变,就可以定义一个默认参数
 4 
 5 
 6 """
 7 #   例如定义函数学生时,性别默认为男生
 8 def studern(name,gentel=''):
 9     print('姓名是%s,性别是%s'% (name,gentel))
10 #  若函数定义了默认参数,调用函数时候,不指定参数即使用默认参数
11 #  不添加默认参数
12 studern('小明')
13 #  指定参数,可以修改默认参数
14 studern('小美','')
15 """
16 注意默认参数定义时,需放置在参数列表的最后,若后方有2个以上的默认参数时,调用函数时需要指定数值
17 """
18 #  定义多个默认参数的数据
19 def car(com,price=12,color='white'):
20     print('汽车的品牌是%s,汽车的价格是%s,汽车的颜色是%s' % (com,price,color))
21 
22 #调用函数
23 car('大众')
24 car('大众',18)
25 #  调用函数传入2个参数 ,传入颜色,却被价格接收
26 car('大众','black')
27 #  正确的调用方式,指定价格数据,
28 car('本田',price=18)
View Code

o2_函数的多值参数.py

 1 #  Learner BM
 2 """
 3 定义函数时候,需要处理函数的参数个数不确定时,需要使用多值参数进行定义
 4 
 5 *args     多值参数,可以接收 元组(tuple)  类型   命名 *args
 6 **kwargs  多值参数,可以接收 字典(dic)    类型   明明 **kwargs
 7 """
 8 num =10
 9 nums =(1,2,3)
10 persion = {'name':'小米'}
11 #  定义一个多值参数的方法
12 def demo(num,*nums,**persion):
13     #   打印变量
14     print(num)
15     #   打印元祖
16     print(nums)
17     #   打印字典
18     print(persion)
19 demo(num,nums)
20 #******调用参数,传入元祖和字典,确发现全部被调用至元祖内部
21 demo(num,nums,persion)
22 
23 """
24 *****此时需要使用拆包语法,即调用参数时候,将实际参数前加上*(代表传递给元祖),和**(代表专递给字典)
25   
26 """
27 print('使用拆包语法后的输出效果')
28 demo(num,*nums,**persion)
29 
30 #  不拆包语法"name='小米'
31 demo(num,nums,name='小米')
View Code

o3_函数递归,自己调用自己.py

 1 #  Learner BM
 2 """
 3 递归,函数自己调用自己,
 4     特点,根据参数不同执行不同
 5     当参数满足一个条件时候,函数停止执行******非常重要,成为函数出口,否则出现死循环
 6 
 7 """
 8 #  例子
 9 #   递归函数,必须要有参数
10 def  demo(num):
11     print('递归调用')
12     #2,定义函数出口,如果num=1,则停止函数,返回return,
13     #  对参数进行判断,
14     if num == 1:
15         return
16     #1,函数内部自己调用自己,此参数必须有所改变,
17     # 此参数为判断条件的参数,此函数为num变量-1,类似于while循环的 num+=1,或者num-=1,
18     demo(num-1)
19 
20 demo(3)
View Code

 

posted on 2020-03-07 17:20  RRRRRRR1  阅读(10)  评论(0)    收藏  举报