第一阶段小结
python简介
定义:是一个免费,开源,跨品台,动态,面向对象的编程语言
程序执行方式:
- 交互式:在命令行输入指令,回车即可得到结果
 - 文件式:将指令编写到py文件中,可以重复运行程序
 
函数:表示一个功能,制作函数的人叫做函数定义着,使用函数的人叫做函数调用者
变量:
- 定义:关联一个对象的标识
 - 命名:必须为字母,数字或者下划线,后面跟着字母,数字,下划线,不能使用保留关键字,
 - 建议命名:见面知意字母小写,多个单词用下划线隔开
 - 语法:变量名 = 表达式 or 变量名1 = 变量名2 = 表达式 or 变量名1,变量名2 = 表达式1,表达式2
 
数据类型:
- None:表示不存在的特殊对象
 - 整形(int):整数包含整数,负数,0。
- 有十进制,二进制,八进制,十六进制
 - 小整数对象池:cpython中整数-5到256,永远存在小整数对象池中,不会释放
 - 对象池:缓存的机制
 
 - 浮点型(float)
- 小数,包含正数,负数,0.0
 - 字面值1.5
 - 科学计数法:1.5e1 ,05e-1
 
 - 字符串(str)
- 用于记录文本信息
 - 字面值:单引号,双引号,三引号
 
 - 布尔值(bool)
- True表示真
 - False表示假
 
 - 复数(complex)
- 由实部和虚部组成的数字
 - 虚部以j或J结尾 5+3j 5j
 
 
数据类型转换
- 转为整形:int(数据)
 - 转为浮点型:float(数据)
 - 转为字符串: str(数据)
 - 转为布尔 : bool(数据)
- False: 0 , 0.0 ,'',None
 - True:有值
 
 
运算符
- 算数运算符
- +
 - -
 - *
 - / 小数除结果为float类型
 - // 底板除:向下取整
 - %取余数
 - **幂运算
 
 - 增强运算符:-= += *= /= //= %= **=
 - 比较运算符:> < == >= <= !=结果是bool类型
 - 逻辑运算符
- and: 一假具假
 - or:一真则真
 - not:取反
 
 - 身份运算符
- is:判断两个对象是否为一个对象
 - is not :与is相反
 
 
range函数
作用:可以生成一系列整数的可迭代对象。
语法:range(开始点,结束点,间隔点)
break语句:跳出循环体,后面的代码不在执行
continue语句:跳过本次循环,继续下次循环
容器
- 字符串(str):由一系列字符组成的不可变序列容器,存储的是字符编码值
 - 列表(list):由一系列变量组成的可变序列容器
- 列表推导式:变量= [表达式for变量in可迭代对象if条件]
 - 推导式镶嵌:[表达式for变量1 in可迭代对象1 for变量2 in可迭代对象2]
 
 - 元组(tuple):由一系列变量组成的不可变序列容器
 - 字典(dict):由一系列键值对组成的可变映射容器
- 映射(哈希算法):通过键对应值,每条记录无序。
 - 键必须唯一且不可变对象(字符串,数字,元组),值没有限制
 
 - 集合(set):由一些列不重复的变量组成的可变映射容器,相当于只有键没有值的字典
 - 固定集合(frozenset):不可变的集合
 
函数
定义:用于封装一个特定的功能,表示一个行为,可以重复执行的语句块。
作用:提供程序的复用性,可维护性(代码层次结构更清晰)
返回值(return):方法定义着告诉调用的结果
函数参数
- 实参传递方式argument
- 位置传参:实参与形参的位置一次对应
 - 序列传参:实参用*将序列拆解后与形参的位置依次对应
 - 关键字传参:实参根据形参的名字进行对应
 - 字典传参:实参用**将字典蔡姐与形参的名字进行对应
 
 - 形参传递方式 parameter
- 默认(缺省)参数:参数 = 默认值
 - 位置形参:def函数名(参数)
 - 星号元组形参:*args
 - 命名关键字形参:强制实参使用关键字传递
 - 双星号字典形参 : **kwargs
 
 
可变/不可变类型再传参时的区别:
- 不可变类型:字符串,元组,固定集合,整数。浮点数。复数
 - 可变类型:列表,字典,集合
 - 不可变类型的数据传参时,函数内部不会改变元数据的值
 - 可变类型的数据传参时,函数内部可能改变原数据的值
 
作用域LEGB
- local局部作用域:函数内部
 - encolsing外部嵌套作用域:函数嵌套
 - GLOBAL全局作用域:py文件内部
 - Builtins内建模块作用域:builtins.py
 - 变量名的查找规则:L-->E-->G--B
 
局部变量:在方法体内部定义的变量调用函数时才被创建,函数结束后自动销毁
全局变量:定义再.py文件中的变量函数体内部可以访问,但不能直接修改,需要先声明
模块:包含一系列数据,函数,类的文件,通常以.py结尾
作用:让一些相关的数据,函数,类的逻辑的组织再一起,使逻辑结构更加清晰,有利于多人合作开发。
导入
- 
- import 模块名:将某模块整体导入到当前模块中
 - from 模块名 import 成员名:将模块内的一个或多个成员导入到当前模块的作用域中
 - from 模块名import *:将模块的所有成员导入到挡墙模块
 
 
加载过程:在模块导入时,模块的所有语句会执行。如果一个模块已经导入,则再次导入时不会执行模块内的语句
分类:
- 内置模块(builtins),在解析器的内部可以直接使用
 - 标准库模块,安装Python时已安装且可直接使用
 - 第三方模块,需要自己安装
 - 用户自己编写的模块(可以作为其他人的第三方模块)
 
迭代:每一次对过程的重复称为一次“迭代”,而每一次迭代得到的结果会作为下一次迭代的初始值
可迭代对象(iterable):具有__iter__函数的对象,可以返回迭代器对象
迭代器对象(iterator):可以被next()函数调用并返回下一个值的对象
说明:聚合对象通常是容器对象
作用:使用者只需要通过一种方式,便可简洁明了的获取聚合对象中各个元素,而无需了解其内部结构
生成器(generator):能够动态(循环一次计算一次返回一次)提供数据的可迭代对象
作用:在循环过程中,按照某种算法推算数据,不必创建容器存储完整的结果,从而节省内存空间,数据量越大,优势越明显
生成器函数:含有yield语句的函数,返回值为生成器对象
函数式编程:用一系列函数解决问题
- 
- 函数可以赋值给变量,赋值后变量绑定函数
 - 允许将函数作为参数传入另一个函数
 - 允许函数返回一个函数
 
 
高阶函数:将函数作为参数或返回值的函数
函数作为参数:将核心逻辑传入方法体,使该方法的适用性更广,体现了面向对象的开闭原则
lambda表达式:是一种匿名方法
作用:作为参数传递时语法简洁,优雅,代码可读性强,随时创建和销毁,减少程序耦合度
语法:变量 = lambda形参:方法体 方法体只能有一条语句,且不支持赋值语句
闭包:
三要素
- 必须有一个内嵌函数
 - 内嵌函数必须引用外部函数中变量
 - 外部函数返回值必须是内嵌函数
 
定义:再一个函数内部的函数,用时内部函数又引用了外部函数的变量
本质:闭包是将内部函数和外部函数的执行环境绑定再一起的地下
优点:内部函数可以使用外部变量
缺点:外部变量一直存在于内存中,不会在调用结束后释放,占用内存
作用:实现Python装饰器
#看看教程 www.runoob.com
                    
                
                
            
        
浙公网安备 33010602011771号