zoukankan      html  css  js  c++  java
  • 函数

    函数

    认识函数

    函数将一些代码进行封装

    定义函数: 封装 减少重复代码

    # def 关键字  函数名():
    	函数体(代码块)
    def make():
        print('1')
        print('2')
        print('3')
        print('4')
        print('5')
        return 多个返回值是元组
    make()  #函数名 + 小括号 == 调用
    msg = make() # make == None  make() == '美女一枚'
    print(msg)
    

    函数的返回值

    def func():
        print('今天是周二')
        print('明天是周三')
        return 0.125
    	print('后天是周四')
         # retrun   不写返回的是None , return写了不写值返回的也是None  return 就是将内容返回了调用者   make()
        # 函数中当执行到return的时候 下面的代码就不执行了,并且终止这个函数
    

    函数的参数

    # 参数
    # 参数 定义的参数 形参
    # 调用的参数是 实参			形参和实参的数量  一一对应
    # 从实参到形参的过程 传参
    # addr 是不是一个变量  addr = '家'
    def func(addr,school): # 形参
        print(f'我在{addr}睡觉{school}')
        
    func(addr = '家',age = 18)
    # 实参的角度:
        #func('清华','东莞')         位置
        #func(addr = '清华',school = '东莞')   关键字
        #func('清华',school = '东莞')         混合
    # 实参的角度:
        #func(addr,school)             位置
        #func(school = '东莞')         默认参数
        #func(addr,school = '东莞')    混合   
        
    #函数形参规则       位置参数 > 默认参数
    #函数实参规则		  位置参数 > 关键字参数
    

    函数参数

    def eat(a,b*args):	    # 聚合 打包
        print(a,b,args)     # 元组
        # 形参位置    :    位置参数   >   动态位置参数
     eat('1','2','3','4','5')
    def eat(**kwargs):
        print(kwargs)		#字典
     eat('q' = '1','w' = '2','e' = '3')   
    
    def func(a,b,*args):	#聚合  
        print(a,b,*args)	#打散
    # args 返回的是元组  *args 将元组打回原来的数组
    func(1,2,3,4,5,6,7)
    
    def func(a = 1,b = 2,**kwargs):    # 默认参数  ** 聚合
        print(a,b,kwargs)
    func(a = 56, c = 22, b = 333, d = 66)
    
    
     def func(a,b,c = 1,*arg,**kwargs):  # 位置 > 动态位置 > 默认参数 > 动态默认参数
            print(a,b,c,args,kwargs)
     func(1,2,3,4,5,6,7,8,c = 33,d = 123,f = 345)
    
    def func(*args,**kwargs):  #万能   无敌
        print(args,kwargs)
    func(1,2,3,4,a = 1,b = 2)   # 位置  关键字  混合
    

    函数的注释

    def func(*args,**kwargs):
        '''
        
        :param args: 万能的位置参数
        :param kwargs: 万能的默认参数
        :return: 返回值
        '''
        print(args)
        print(kwargs)
        return
    
    print(func.__doc__)   # 查看函数的注释		函数名.__doc__
    

    函数的命名空间

     #内置空间
     #全局空间
     #局部空间
        
    # python关键字是存在内置空间的
    # py文件中顶头写的内容就存在全局空间
    # 函数内写的变量存在局部空间
    
    #a = 1
    #b = 2
    y = 9
    def func():
        y = 3     # 局部空间
        print(y)   #  3
    def func1():
        print(y)   #  9  局部空间不能共享
    
    # 找值顺序:局部空间 > 全局空间 > 内置空间
    # 加载顺序:内置空间 > 全局空间 > 内置空间
    
    #命名空间: 
       # 内置空间 + 全局空间
       # 局部空间
    

    函数的嵌套

    def func():
        func1()
        print(1)
    def func1():
        print(11111)
    func()    
    #11111
    #1
    

    global nonlocal

     #内置空间 +  全局空间 = 全局   globals()
     #局部空间 				      loacals()
    a = 10
    def func():
    	a = 20
        print(a)
        print(globals())    # 查看全局作用域的内容
        print(locals())     # 查看局部作用域的内容
    func()
    
    a = 10
    def func():
        global a	# 声明我要修改全局的变量a的值
        a = 20
        print(a)
    func()
    print(a)
    
    n = 1
    def func():
        n = 10
        def fun2():
            def func1():
                nolocal n  # 修改离得最近上一次里的变量值 上一层没有就继续往上找,找到全局最外层局部
                n = 100
                print(n)   # 10
            func1()
        func2()
    func()
    print(n)
    
  • 相关阅读:
    51nod乘积之和
    Dell服务器安装OpenManage(OMSA)
    Nginx反向代理PHP
    搭建haproxy
    108. Convert Sorted Array to Binary Search Tree
    60. Permutation Sequence
    142. Linked List Cycle II
    129. Sum Root to Leaf Numbers
    118. Pascal's Triangle
    26. Remove Duplicates from Sorted Array
  • 原文地址:https://www.cnblogs.com/fengqiang626/p/11147660.html
Copyright © 2011-2022 走看看