昨日回顾

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

今日内容

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 内置函数globals、locals

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

今日总结

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

明天学习

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

代码总行数1637+35=1672行

python10day的更多相关文章

随机推荐

  1. 【剑指Offer】从上往下打印二叉树 解题报告(Python)

    [剑指Offer]从上往下打印二叉树 解题报告(Python) 标签(空格分隔): 剑指Offer 题目地址:https://www.nowcoder.com/ta/coding-interviews ...

  2. 1301 - Monitoring Processes

    1301 - Monitoring Processes    PDF (English) Statistics Forum Time Limit: 3 second(s) Memory Limit:  ...

  3. github项目托管方式(看项目自身是否自带有 .git)

    一.本地仓库和远程仓库建立联系 方式一:项目自身带有 .git文件的[自身就是一个本地仓库的](这里咱以vue-cli3项目为例) 1.创建自带.git本地仓库:创建一个叫 my-vue 的项目 2. ...

  4. Codeforces 777C:Alyona and Spreadsheet(预处理)

    During the lesson small girl Alyona works with one famous spreadsheet computer program and learns ho ...

  5. [炼丹术]EfficientDet训练模型学习总结

    EfficientDet训练模型学习总结 1.Introduction简介 pytorch用SOTA实时重新实现官方EfficientDet,原文链接:https : //arxiv.org/abs/ ...

  6. [Git]解决Permission denied, please try again问题

    在gitlab上传项目的时候出现Permission denied, please try again问题, 网上有很多解释,但是都没能解决我的问题,后来经过自己尝试成功了,这里把经验分享给大家. 在 ...

  7. bat文件调用cmd命令批量提取文件夹中的文件名(批量修改文件扩展名)

    前言: 在平时的工作中,经常需要批量统计文件和数据,如果逐个统计的话太耗时,而且容易出错那么有没有什么快速的方法呢,这里给大家介绍一种简单高效的方法. 方法: 1.打开CMD命令: 按下 Ctrl+R ...

  8. 使用 JavaScript 中的变量、数据类型和运算符,计算出两个 number 类型的变量与一个 string 类型的变量的和,根据 string 类型处于运算符的不同位置得到不同的结果

    查看本章节 查看作业目录 需求说明: 使用 JavaScript 中的变量.数据类型和运算符,计算出两个 number 类型的变量与一个 string 类型的变量的和,根据 string 类型处于运算 ...

  9. mysql总结笔记 -- 索引篇

    索引的作用 索引是用来高效的获取数据的 排好序 的 数据结构,如果没有索引,可能会导致查询某一条记录的时候遍历整张表:所以适当的索引可以大大的提升检索速度: 索引的数据结构 二叉树 假如说我们有一列数 ...

  10. .NET 云原生架构师训练营(责任链模式)--学习笔记

    目录 责任链模式 源码 责任链模式 职责链上的处理者负责处理请求,客户只需要将请求发送到职责链上即可,无需关心请求的处理细节和请求的传递,所以职责链将请求的发送者和请求的处理者解耦了 何时使用:在处理 ...