第一阶段小结

python简介

  定义:是一个免费,开源,跨品台,动态,面向对象的编程语言

程序执行方式:

  1. 交互式:在命令行输入指令,回车即可得到结果
  2. 文件式:将指令编写到py文件中,可以重复运行程序

函数:表示一个功能,制作函数的人叫做函数定义着,使用函数的人叫做函数调用者

变量:

  1. 定义:关联一个对象的标识
  2. 命名:必须为字母,数字或者下划线,后面跟着字母,数字,下划线,不能使用保留关键字,
  3. 建议命名:见面知意字母小写,多个单词用下划线隔开
  4. 语法:变量名 = 表达式 or 变量名1 = 变量名2 = 表达式 or 变量名1,变量名2 = 表达式1,表达式2

数据类型:

  1. None:表示不存在的特殊对象
  2. 整形(int):整数包含整数,负数,0。
    • 有十进制,二进制,八进制,十六进制
    • 小整数对象池:cpython中整数-5到256,永远存在小整数对象池中,不会释放
    • 对象池:缓存的机制
  3. 浮点型(float)
    • 小数,包含正数,负数,0.0
    • 字面值1.5
    • 科学计数法:1.5e1 ,05e-1
  4. 字符串(str)
    • 用于记录文本信息
    • 字面值:单引号,双引号,三引号
  5. 布尔值(bool)
    • True表示真
    • False表示假
  6. 复数(complex)
    • 由实部和虚部组成的数字
    • 虚部以j或J结尾 5+3j     5j

数据类型转换

  • 转为整形:int(数据)
  • 转为浮点型:float(数据)
  • 转为字符串: str(数据)
  • 转为布尔 : bool(数据)
    • False: 0 , 0.0 ,'',None
    • True:有值

运算符

  1. 算数运算符
    • +
    • -
    • *
    • / 小数除结果为float类型
    • // 底板除:向下取整
    • %取余数
    • **幂运算
  2. 增强运算符:-=   +=  *=  /=  //=  %=  **=
  3. 比较运算符:>  <   ==  >=   <=  !=结果是bool类型
  4. 逻辑运算符
    • and: 一假具假
    • or:一真则真
    • not:取反
  5. 身份运算符
    • is:判断两个对象是否为一个对象
    • is not :与is相反

range函数

  作用:可以生成一系列整数的可迭代对象。

  语法:range(开始点,结束点,间隔点)

break语句:跳出循环体,后面的代码不在执行

continue语句:跳过本次循环,继续下次循环

容器

  1. 字符串(str):由一系列字符组成的不可变序列容器,存储的是字符编码值
  2. 列表(list):由一系列变量组成的可变序列容器
    • 列表推导式:变量= [表达式for变量in可迭代对象if条件]
    • 推导式镶嵌:[表达式for变量1 in可迭代对象1 for变量2 in可迭代对象2]
  3. 元组(tuple):由一系列变量组成的不可变序列容器
  4. 字典(dict):由一系列键值对组成的可变映射容器
    • 映射(哈希算法):通过键对应值,每条记录无序。
    • 键必须唯一且不可变对象(字符串,数字,元组),值没有限制
  5. 集合(set):由一些列不重复的变量组成的可变映射容器,相当于只有键没有值的字典
  6. 固定集合(frozenset):不可变的集合

函数

  定义:用于封装一个特定的功能,表示一个行为,可以重复执行的语句块。

  作用:提供程序的复用性,可维护性(代码层次结构更清晰)

  返回值(return):方法定义着告诉调用的结果

函数参数

  1. 实参传递方式argument
    • 位置传参:实参与形参的位置一次对应
    • 序列传参:实参用*将序列拆解后与形参的位置依次对应
    • 关键字传参:实参根据形参的名字进行对应
    • 字典传参:实参用**将字典蔡姐与形参的名字进行对应
  2. 形参传递方式 parameter
    • 默认(缺省)参数:参数 = 默认值
    • 位置形参:def函数名(参数)
    • 星号元组形参:*args
    • 命名关键字形参:强制实参使用关键字传递
    • 双星号字典形参 : **kwargs

可变/不可变类型再传参时的区别:

  1. 不可变类型:字符串,元组,固定集合,整数。浮点数。复数
  2. 可变类型:列表,字典,集合
  3. 不可变类型的数据传参时,函数内部不会改变元数据的值
  4. 可变类型的数据传参时,函数内部可能改变原数据的值

作用域LEGB

  1. local局部作用域:函数内部
  2. encolsing外部嵌套作用域:函数嵌套
  3. GLOBAL全局作用域:py文件内部
  4. Builtins内建模块作用域:builtins.py
  5. 变量名的查找规则:L-->E-->G--B

局部变量:在方法体内部定义的变量调用函数时才被创建,函数结束后自动销毁

全局变量:定义再.py文件中的变量函数体内部可以访问,但不能直接修改,需要先声明

模块:包含一系列数据,函数,类的文件,通常以.py结尾

      作用:让一些相关的数据,函数,类的逻辑的组织再一起,使逻辑结构更加清晰,有利于多人合作开发。

      导入

    • import 模块名:将某模块整体导入到当前模块中
    • from 模块名 import 成员名:将模块内的一个或多个成员导入到当前模块的作用域中
    • from 模块名import *:将模块的所有成员导入到挡墙模块

     加载过程:在模块导入时,模块的所有语句会执行。如果一个模块已经导入,则再次导入时不会执行模块内的语句

   分类:

    1. 内置模块(builtins),在解析器的内部可以直接使用
    2. 标准库模块,安装Python时已安装且可直接使用
    3. 第三方模块,需要自己安装
    4. 用户自己编写的模块(可以作为其他人的第三方模块)

迭代:每一次对过程的重复称为一次“迭代”,而每一次迭代得到的结果会作为下一次迭代的初始值

可迭代对象(iterable):具有__iter__函数的对象,可以返回迭代器对象

迭代器对象(iterator):可以被next()函数调用并返回下一个值的对象

   说明:聚合对象通常是容器对象

   作用:使用者只需要通过一种方式,便可简洁明了的获取聚合对象中各个元素,而无需了解其内部结构

生成器(generator):能够动态(循环一次计算一次返回一次)提供数据的可迭代对象

   作用:在循环过程中,按照某种算法推算数据,不必创建容器存储完整的结果,从而节省内存空间,数据量越大,优势越明显

生成器函数:含有yield语句的函数,返回值为生成器对象

函数式编程:用一系列函数解决问题

    • 函数可以赋值给变量,赋值后变量绑定函数
    • 允许将函数作为参数传入另一个函数
    • 允许函数返回一个函数

高阶函数:将函数作为参数或返回值的函数

函数作为参数:将核心逻辑传入方法体,使该方法的适用性更广,体现了面向对象的开闭原则 

lambda表达式:是一种匿名方法

    作用:作为参数传递时语法简洁,优雅,代码可读性强,随时创建和销毁,减少程序耦合度

    语法:变量 = lambda形参:方法体 方法体只能有一条语句,且不支持赋值语句

闭包:

  三要素

  1. 必须有一个内嵌函数
  2. 内嵌函数必须引用外部函数中变量
  3. 外部函数返回值必须是内嵌函数

  定义:再一个函数内部的函数,用时内部函数又引用了外部函数的变量

  本质:闭包是将内部函数和外部函数的执行环境绑定再一起的地下

  优点:内部函数可以使用外部变量

  缺点:外部变量一直存在于内存中,不会在调用结束后释放,占用内存

  作用:实现Python装饰器

#看看教程 www.runoob.com

 

 

 

 

  

 

posted @ 2019-08-02 20:08  爱吃西红柿的猫  阅读(102)  评论(0编辑  收藏  举报