函数简单记载

def test():         #test是函数名   ():可填参数
         "函数的描述"
       函数的规则
       return:        #定义函数返回值  碰到return则函数结束运行     
   函数有2个积极的作用:
       1   代码的重复利用           在编程时,如果有一大段代码相同,可用函数去定义。这样可节约大量的人力时间
       2   可扩展和一致性           改变函数的函数规则   则引用函数的代码里的函数都会相同改变函数规则,具有方便扩展更改的一致性

  函数就是实现特定功能

关于返回值return     可以定义任何数据类型,最后都会把不同的类型打包成以元祖的形式的单一返回值。没有返回值这会出现none
       为什么函数要有返回值  因为执行了函数完了返回值时,相关程序或者代码会根据这个返回值选择要执行的下个程序代码。

形式参数 和 事实参数    
                            def test(x,y):        #x,y就是形式参数
                                  print(x)
                                  print(y)
                          函数调用:
                             test(1,2)             #位子参数(事实参数)直接对应形式参数
                             test(y=2,x=1)       #关键字调用        
                           关键自调用和位子参数混用的时候,
                              关键字要在位子参数后面   且 遵循位子参数的规则来   
       test(5,36)                          #5,36为位子参数(实参),一一对应x,y
       test(y=36,x=5)                      #可不按位子,这是关键字调用赋值
       test(5,y=36)                        #前2这混合,但是还是遵循位子参数原则,且位子参数永远在关键字参数之前,否则会报错

def test2(x,y,z):
print(x)
print(y)
print(z)
test2(1,y=2,3)
  #会报错

     
def test(x,y=2)                   
#y=2 为默认参数  当调用的时候不实参y的话就默认y=2

   
    参数组:
      在参数不确定的情况下使用,且在函数中会以元组的形式出现
       def test(x,*args):                  #*args为不确定参数的元组表示方法
            print(x)
            print(args)                    #args 为形式参数不确定因数       不确定的参数将会以元组的形势表示出来
      test(1,"ai",5,["china","chinse"])    
      test(1,*(5,"ai",["china,"chinse""]))

      def test(x,**kwargs):              #不确定参数将会以字典方式表示出来,   对应的话,不确定参数填写应该写关键字形式表示对应字典
          print(kwargs)
      test(2,name="huangjian", age=28,sex="men")   #则后面会以字典形式出现


def test(x,*args):
print(x)
print(args)

test(3,*{"name":"xiaojian"})
test(4,*['x','y','z'])
print(type(*{"name":"xiaojian"})) #在函数中如果参数前面加入*就相当于使用for循环把后面数据一个一个传入args中变成元素组成元组

     
      说白了,在不确定参数的情况下,用args则是不同数据,不能等于赋值 ,得出的实参是元组表示的集合     (不能以=的方式出现,无法for循环)
                                    用kwargs则参数一定是键值对的形式出现,得到的实参是字典。   (必定是以=的方式出现在对应的位子)

 

posted @ 2020-06-10 21:00  xiaojianfir  阅读(145)  评论(0)    收藏  举报