Python3-函数

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。

函数能提高应用的模块性,和代码的重复利用率。

一、判断是不是什么类型:isinstance(变量,类型)
    示例:tuple1 = (1,2,3)
          print(isinstance(tuple1,tuple))
    结果:True
 
二、可变和不可变:
        可变:地址不变,里面内容改变    list、dict、set
        示例:list1 = [1,2,3,4,5]
              list2 = list1
              list1.remove(5)
              print(list2)
        结果:[1,2,3,4]
 
 
        不可变:只要内容改变,必须改变地址    int、str、tuple
        示例:str1 = "abc"
              str2 = str1
              str1 = "ab"
              print(str2)
        结果:"abc"
 
三、**kwarges:
        只要外面给函数送值,送的值必须是key=values的形式
        示例:def func(**kwargs):
                    print(kwargs)
              func(a=1,b=2,c=3)
        结果:{'c': 3, 'b': 2, 'a': 1}
 
四、全局变量 和 局部变量
    全局变量如果是不可变,在函数中进行修改需要添加global关键字
            如果是可变的,................则不需要添加
 
五、关于*args与**karges
        ①    *arges            ---元组
            示例:def func(a,*arges):
                    print(a,arges)
                  t1 = (1,2,3)
                  func(1,t1)    # 1 ((1,2,3),)
                  func(1,*t1)   # 1 (1,2,3)
                
                  l1 = [1,2,3]
                  func(1,l1)    # 1 ([1,2,3],)
                  func(1,*l1)   # 1 (1,2,3)
        
        ②    **karges        ---字典
            示例:def func(a,**kwargs):
                    print(a,kwargs)
 
                  d1 = {'1':'a','2':'b','3':'c'}
                  func(1,**d1)    
            结果:1 {'2': 'b', '3': 'c', '1': 'a'}
 
六、练习
def func(a,*args):
    print(a,args)
 
func(2,3,4,5)   # 2 (3,4,5)
func(2,[1,2,3,4])   # 2 ([1,2,3,4])
func(2,3,[1,2,3,4,5])   # 2 (3,[1,2,3,4,5])
func(5,6,(4,5,7),9)     # 5 (6,(4,5,7),9)
 
def func(a,b=10,c=3,**kwargs):
    print(a,b,c,kwargs)
func(1)     # 1 10 3 {}
func(2,b=10)    # 2 10 3 {}
# func(3,5,7,a=1,b=2)   # TypeError: func() got multiple values for argument 'a'
func(3,5,7,x=1,y=2) # 3 5 7 {"x":1,"y":2}
 
def func(a,*args,**kwargs):
    print(a,args,kwargs)
 
t = (1,2,3,4)
func(1,t)   # 1 ((1,2,3,4)) {}
 
l = [2,5,8]
func(1,l,c=9,b=6)   # 1 ([2,5,8]) {"c":9,"b":6}
func(1,*l,c=9,b=6)  # 1 (2, 5, 8) {'b': 6, 'c': 9}
 
dict1 = {'1':'a','2':'b','3':'c'}
func(1,2,3,4,5,**dict1)     # 1 (2,3,4,5) {'3': 'c', '1': 'a', '2': 'b'}
        
原文地址:https://www.cnblogs.com/DemonKnifeGirl/p/12997188.html