昨日回顾

  • 函数是以功能为导向,减少重复代码、增强可读性。
  • 函数的调用:func()、写几次执行几次
  • 函数的返回值return
    • 终止函数
    • return单个值
    • return多个值,按元组返回
  • 函数的参数:
    • 实参角度:位置参数、关键字参数、混合参数
    • 形参角度:位置参数、默认值参数

今日内容

  • 如何在工作中不让别人看出你是培训出来的?

    • 第一天环境安装等等,小白各种问。
    • 项目需求不清晰,也不敢问。
    • 需要学会自主学习,自己解决问题的能力。
  • 形参角度:

    • 万能参数
    #万能参数:*args,约定俗成args
    #函数定义时,*代表聚合,将所有的位置参数聚合成一个元组,赋值给agrs这个参数
    def eat(*args):
    print('%s,%s'%args)
    eat('xx','aa') #练习:
    #使用*args写函数,计算传入函数数字的和。
    def sumnum(*args):
    count=0
    for i in args:
    count += i
    print(count)
    sumnum(1,2,3,4,5)
    # **kwargs接收所有关键字参数
    # 函数的定义时: **将所有的关键字参数聚合到一个字典中,将字典赋值给了kwargs
    • *的魔性用法

      • 在定义时聚合,在函数调用时打散,比如调用时一个参数是一个list类型,会打散list

        func(*[1,2,3],*[22,33])
    • 仅限关键字参数(了解)

      • 形参角度第四个参数,位置应在

        • #其中的c就是仅限关键字参数,必须传值,不然报错
          def func(a,b,*args,sex='男',c,**kwargs):
    • 形参的最终顺序。

      • 位置参数、*args、关键字参数、仅限关键字参数、**kwargs
  • 名称空间:

    • 全局名称空间,局部……

      • 全局:内部变量一个.py文件都能用
      • 局部:临时开辟的空间,内部变量只当前定义的函数内才能用

      • 内置名称空间:python源码给提供的,比如print等。
    • 加载顺序、取值顺序

      • 1.点击运行,内置名称空间加载到内存
      • 2.全局
      • 3.局部
      • 取值时:就近原则,局部-->全局-->内置,不可逆
    • 作用域

      • 全局作用域:内置名称空间 全局名称空间
      • 局部作用域:局部名称空间
      data='周六'
      def func():
      a=666
      print(data)
      print(a)
      #报错:局部作用域可以引用全局作用域,但不能改变。全局作用域不能引用局部的变量,会报错。

      这个图就会报错。因为局部没有新定义count,而改变了全局的count。

      局部作用域不能改变全局作用域的变量,当python解释器读取到局部作用域时,发现对变量进行的修改操作,解释器会认为你在局部定义了局部变量,而在局部没有找到时,就会报错。

  • 函数的嵌套(高阶函数)

  • 内置函数globals、locals

    • '''
      本文件研究内置函数globals,locals
      ''' a=1
      b=2
      def func():
      name='henri'
      age=23
      print(globals()) #返回一个字典,全局作用域的所有内容
      print(locals()) #返回一个字典,当前作用域的所有内容

今日总结

  1. 参数:万能参数,仅限关键字参数,参数的顺序,*的使用:聚合、打散
  2. 名称空间,作用域,取值顺序,加载顺序
  3. globals、locals
  4. 高阶函数:执行顺序
  5. all重点

明天学习

  1. 函数名的运用
  2. 迭代器

代码总行数1637+35=1672行

python10day的更多相关文章

随机推荐

  1. AWS 15 年(1):从 Serverful 到 Serverless

    2006年,AWS发布了其第一个Serverless存储服务S3和第一个Serverful计算服务EC2,这也是AWS正式发布的前两个服务,开启了云计算波澜壮阔的旅程.2014年,AWS发布了业界第一 ...

  2. 第47篇-解释执行的Java方法调用native方法小实例

    举个小实例,如下: public class TestJNI { static { // 程序在加载时,自动加载libdiaoyong.so库 System.loadLibrary("dia ...

  3. 揭秘人脸对齐之3D变换-Java版(文末赋开源地址)

    一.人脸对齐基本概念 人脸对齐通过人脸关键点检测得到人脸的关键点坐标,然后根据人脸的关键点坐标调整人脸的角度,使人脸对齐,由于输入图像的尺寸是大小不一的,人脸区域大小也不相同,角度不一样,所以要通过坐 ...

  4. Java_Swing中让窗口居中显示的方法(三种方法)

    方法一: int windowWidth = frame.getWidth(); // 获得窗口宽    int windowHeight = frame.getHeight(); // 获得窗口高 ...

  5. IIS部署.net core项目

    1.安装AspNetCoreModule模块 与ASP.NET时代不同,ASP.NET Core不再是由IIS工作进程(w3wp.exe)托管,而是使用自托管Web服务器(Kestrel)运行,中间最 ...

  6. Linux shc 命令手册

    shc Generic shell script compiler. https://www.linux-man.cn/command/shc/ #Compile a shell script: sh ...

  7. maven pom.xml 的 spring-boot-maven-plugin 红色报错 解决

    解决方法,添加对应的spring boot 版本号即可

  8. ubuntu 18.04 关掉sudo密码

    关掉sudo密码 $ sudo visudo 找到如下行 %sudo ALL=(ALL:ALL) ALL 修改为 %sudo ALL=(ALL:ALL) NOPASSWD:ALL 这样sudo用户组的 ...

  9. mysql-5.7.20-winx64安装图解教程

    原文链接:https://www.toutiao.com/i6494052843912167949/ 将安装包解压 解压目录 鼠标右键"我的电脑",弹出"快捷菜单&quo ...

  10. 记一次ARM服务器(鲲鹏920)的PXE批量装机遇到的坑

    由于近期项目需要,在对一批华为鲲鹏920的ARM服务器(型号为天宫TG225 B1)进行批量装机的过程中,遇到了各种各样千奇百怪的bug(换个高情商的说法就是遇到了各种各样和x86服务器不一样的地方) ...