• day_09 函数及参数


    1.定义:把功能封装起来,方便下次直接调用
    2.语法:def 关键词开头,空格之后接函数名称和圆括号()。
               def 函数名(形参)
    	     函数体
    3.参数:圆括号用来接收参数。若传入多个参数,参数之间用逗号分割。
        参数可以定义多个,也可以不定义。
        参数有很多种,如果涉及到多种参数的定义,应始终遵循位置参数、*args、默认参
               数、**kwargs顺序定义。
    3.注释:函数的第一行语句应该添加注释。
    4.函数体:函数内容以冒号起始,并且缩进。
    5.返回值:return [表达式] 结束函数。
             1.函数内部不写return,默认返回NONE
    	  2.函数只写了return,返回NONE
    	  3.如果函数只写了一个返回值,则返回一个值
             4.如函数写了多个返回值,则调用者接收到一个元组,返回值是返回给调用方的.
    

      

    1. 动态传参
         1.形参
    	   1.位置参数
    	   2.默认值参数
    	   3.动态传参
    	      1.*args动态接收位置参数  传参的时候自动把实参打包成元组,交给形参
    		  2.**kargs动态接收默认值参数  接收的内容以关键字形式
    		位置参数>*rags>关键字参数>**kargs
    		# 顺序  位置 > *args > 默认值参数 > **kwargs
     		def func(*args, **kwargs):
        		print(args, kwargs)
    		*,**在形参位置聚合
    		*,**在实参位置打散(针对可迭代对象,如字符串,列表等,打散后一一传进去,或者字典打散成关键字)
    	 2.实参(函数的调用)
    	  1.位置参数
    	  2.关键字参数
    	  3.混合参数
    圆括号从来接收参数,若传入多个参数,应先按位置传,再按关键字传

    2.返回值
       如果函数有返回值,还应该定义变量来接收返回值
       如果返回值有多个,也应该用相应数量的变量来接收返回值
       1.无返回值的情况
         函数名()
       2.有返回值的情况
         变量=函数名()
       3.多个返回值
         变量1,变量2....=函数名()
    
    3.名称空间与作用域 1.名称空间:保存名字的的空间,包括函数,变量,类 
        1.内置名称空间:存放python解释器为我们提供的list print input等 
        2.全局命名空间:在python解释器中,在函数外声明的
        3.局部命名空间:在函数,类,模块内声明的,都属于局部命名空间 
    加载顺序:内置命名空间>全局命名空间>局部命名空间(函数被执行的时候) 
    取值顺序:
        1.在局部:局部命名空间>全局命名空间>内置命名空间
        2.在全局:全局命名空间>局部命名空间
      
    2.作用域:作用范围
        1.全局作用域:包含全局命名空间和内置命名空间(在整个文件的任何地方都可以使用) 
        2.局部作用域:局部命名空间 
        3.用法
          print(globals())返回全局作用域的名字
          print(locals())返回局部作用域名字
    4.函数的嵌套 每一层都会产生自己的命名空间 
    5. globals:查看全局作用域的名字
      nonlocal:在局部引入上一层空间变量,如果没有,继续上一层,(一层一层往上)
    

      

  • 相关阅读:
    Leetcode36--->Valid Sudoku(判断给定的数独是否有效)
    Leetcode34--->Search for a Range(在排序数组中找出给定值出现的范围)
    Leetcode33--->Search in Rotated Sorted Array(在旋转数组中找出给定的target值的位置)
    Leetcode31--->Next Permutation(数字的下一个排列)
    Leetcode30--->Substring with Concatenation of All Words(主串中找出连接给定所有单词的子串的位置)
    Leetcode207--->课程表(逆拓扑排序)
    Leetcode28--->字符串的匹配(KMP)
    前端组件,框架,以及模板
    wpf开发
    UML统一建模
  • 原文地址:https://www.cnblogs.com/tjp40922/p/9883039.html
Copyright © 2020-2023  润新知