基础知识
变量
1、变量名是区分大小写的
2、在函数内部创建全局变量,使用global关键字
数据类型
可以用type()函数获取任何对象的数据类型,为变量赋值时,会默认指定数据类 型,也可以自己指定数据类型。
python默认内置数据类型
| 类型 |
对象 |
| 文本类型 |
str |
| 数值类型 |
int,float,complex |
| 序列类型 |
list,tuple,range |
| 映射类型 |
dict |
| 集合类型 |
set,frozenset |
| 布尔类型 |
bool |
| 二进制类型 |
bytes,bytearray,memoryview |
数字
1、int、float、complex三种,无法将复数转换为其他数字类型
2、python没有random()函数来创建随机数,但有一个random内置模块,可用来生成随机数
| 方法 |
描述 |
| seed() |
初始化随机数生成器 |
| getstate() |
返回随机数生成器的当前内部状态 |
| setstate() |
恢复随机数生成器的内部状态 |
| getrandbits() |
返回表示随机位的数字 |
| randrange() |
返回给定范围之间的随机数 |
| randint() |
返回给定范围之间的随机数 |
| chioce() |
返回给定序列中的随机元素 |
| chioces() |
返回一个列表,其中包含给定序列中的随机选择 |
| random() |
返回0与1之间的浮点数 |
| uniform() |
返回两个给定参数之间的随机浮点数 |
字符串
len(): 获取字符串长度
strip(): 删除开头和结尾的空白字符
lower(): 返回小写的字符串
upper(): 返回大写的字符串
replace(): 替换字符串
split(): 找到分隔符的实例时将字符串拆分为子字符串
format(): 组合字符串,接受传递的参数,格式化它们,并将它们放在占位符{}所在的字符串中
布尔值
大多数值都为 True
如果有某种内容,则几乎所有值都将评估为 True。
除空字符串外,任何字符串均为 True。
除 0 外,任何数字均为 True。
除空列表外,任何列表、元组、集合和字典均为 True。
列表
- 列表是一种有序和可更改的集合。允许重复的成员,用方括号[]编写
- 可以用list()构造函数创建一个新的列表,用双括号。
列表的内置方法
| 方法 |
描述 |
| append() |
在列表末尾添加一个元素 |
| clear() |
删除列表中的所有元素 |
| copy() |
复制列表 |
| count() |
返回具有指定值的元素数量 |
| entend() |
将列表元素添加到当前列表的末尾 |
| index() |
返回具有指定值的第一个元素的索引 |
| insert() |
在指定位置添加元素 |
| pop() |
删除指定位置的元素 |
| remove() |
删除具有指定值得项目 |
| reverse() |
颠倒列表的顺序 |
| sort() |
对列表进行排序 |
元组
- 元组是一宗有序且不可更改的集合。用圆括号编写()
- 可以将元组转换为列表,更改列表,在转换为元组,以此实现元组的更改。
- tuple()构造函数:可用来创建元组,双括号(())
元组方法
| 方法 |
描述 |
| count() |
返回元组中指定值出现的次数 |
| index() |
在元组中搜索指定的值并返回它被找到的位置 |
集合
- 集合是无序无索引的集合。用花括号编写{}
- set() 构造函数可以创造集合
常用方法
| 方法 |
描述 |
| add() |
向集合中添加元素 |
| clear() |
清空集合 |
| copy() |
复制集合 |
| discard() |
删除制定项目 |
| pop() |
从集合中删除一个元素 |
| remove() |
删除指定元素 |
| union() |
返回包含集合并集的集合 |
| update() |
用此集合和其他集合的并集更新集合 |
字典
- 字典是一个无序、可变和有索引的集合。花括号{}编写,有键和值
- 字典中可以嵌套字典
- dict() 构造函数可以用来创建字典
字典常用方法
| 方法 |
描述 |
| clear() |
删除字典中的所有元素 |
| copy() |
复制字典 |
| formkeys() |
返回拥有指定键和值的字典 |
| get() |
返回指定键的值 |
| values() |
返回字典的值 |
| items() |
遍历键和值 |
| keys() |
返回包含字典键的列表 |
| pop() |
删除拥有指定键的元素 |
| popitem() |
删除最后插入的键值对 |
| update() |
使用指定的键值对字典进行更新 |
函数
- 函数是一种仅在调用是运行的代码块,使用关键字def定义函数
- 参数:信息可作为参数传递给函数
- 参数分为:默认参数、关键字参数、任意参数(在参数前面添加*)
lambda函数
- lambda函数是一种小的匿名函数
- lambda函数可接受任意数量的参数,但是只有一个表达式
数组
- 数组用于在单个变量中存储多个值,python没有内置对数组的支持,但是可以用python列表代替
数组方法
| 方法 |
描述 |
| append() |
在列表的末尾添加一个元素 |
| clear() |
删除列表中的所有元素 |
| copy() |
复制数组 |
| count() |
返回具有指定值的元素数值 |
| extend() |
将列表元素添加到当前列表的末尾 |
| index() |
返回具有指定值的第一个元素的索引 |
| insert() |
在指定位置添加元素 |
| pop() |
删除指定位置的元素 |
| remove() |
删除具有指定值得项目 |
| reverse() |
颠倒列表得顺序 |
| sort() |
对列表进行排序 |
类
- python是面向对象的编程,几乎所有的东西都是对象,都有属性和方法
- 类类似对象构造函数,或者适用于创建对象得"蓝图"
- 用关键字class创建类
- _init_()函数
类得内置函数,它始终在类启动的时候执行,所有的类都有一个__init__()的函数
使用__init__函数将值赋给对象的属性,或者在创建对象时需要执行的其他操作
- self参数:是对当前实例的引用,用于访问属于该类的变量。它不必被命名,可以随意调用,但是它必须是类中任意函数的首个参数。
继承
- 继承允许定义和继承另一个类对的所有方法和属性的类
- 形式:class 子类(父类)
- 子类的__init__会覆盖父类的__init__函数,要保父类的函数,要添加对父类的调用
- super()函数:它会使子类从其父类继承所有的方法和属性
迭代器
- 迭代器是一种可迭代对象,意味着可以遍历所有的值。迭代器是实现迭代器协议的对象,它包含方法__iter__()和__next___()
- 列表、元组、集合都是可迭代对象。
- 创建迭代器,想要把类或者对象建为迭代器,必须为其实现__iter__()和__next__()方法。
- _iter_(): 可以执行操作,但必须返回迭代器对象本身
- _next_(): 允许执行操作,并且必须返回序列中的下一个项目
- StopIteration语句:防止一直迭代
作用域
JSON
- 是用于存储和交换数据的语法,json是JavaScript对象表示法编写的文本
- python中由内置包json,用于处理json数据
- json.load()方法:把json字符串处理为python字典
- json.dumps()方法:把python对象转换为json字符串
- 格式化结果:json.dumps(x, indent=xxx,separators=("xxx","xxx"))
- json.dumps()方法提供了对结果的剑进行排序的参数,json.dumps(x, indent=4, sort_keys=True)
正则表达式
函数
| 函数 |
描述 |
| findall() |
返回包含所有匹配的列表 |
| search() |
搜索字符串中的匹配项,如果存在匹配则返回Match对象 |
| split() |
返回一个列表,其中字符串在每次匹配时被拆分 |
| sub() |
把匹配替换为自定义选择的文本 |
元字符
| 字符 |
描述 |
| [] |
一组字符 |
| |示意特殊序列 |
|
| . |
任何字符 |
| ^ |
起始于 |
| $ |
结束于 |
| * |
零次或者多次出现 |
| + |
一次或者多次出现 |
| {} |
确切地指定出现的次数 |
| | |
两者任一 |
| () |
捕获和分组 |
异常
- try: 允许测试代码块以查找错误
- except: 允许处理错误
- finally: 允许执行代码, 无论try和except块的结果如何
- 引发异常: 抛出(引发)异常,使用关键字 raise
命令行输入
- input()方法, python3中使用
- raw_input()方法,python2中使用
字符串的格式化
- 格式化选定的部分,在文本加添占位符(花括号{}, 然后通过format()方法运行值)
- 可以在花括号中定义参数如何转换值,
文件处理
- 关键函数: open(): 两个参数,文件名和模式,如果有中文,加encoding='utf-8'
如:f = open("路径",encoding='utf-8')
- 操作完成后,应该关闭文件
读取文件
写入/创建文件
- 操作:
r---只读方式打开(默认)
w---写入-文件不存在,会创建一个文件-会覆盖全部内容
a---追加-文件不存在,会创建一个文件-追加到末尾
x---创建-文件存在返回错误
b---二进制模式打开
t---默认文本模式打开
删除文件
- 删除文件,必须导入os模块,并运行os.remove()函数
- 删除前,检查文件是否存在,os.path.exists("文件名")
- 删除文件夹,使用os.rmdir()方法,只能删除空文件夹
文件对象方法
f.close() 关闭文件
f.read(size=-1) 从文件读取size个字符,未给值或者为负数时,取所有的字符
f.readline() 读取文件中的一行
f.write(str) 将字符串str写入文件
f.writelines(seq) 向文件写入一个字符串序列seq,
f.seek(offset,from) 在文件中移动文件指针,从from(0代表文件起始位置,1代表当前位置,2代表文件末尾)便宜offset个字符
f.tell() 返回当前在文件中的位置