PYTHON三级复习资料
PYTHON三级复习资料
序列(列表、字符串)
指的是一块可存放多个值的连续内存空间,这些值按一定顺序排列,可通过每个值所在位置的编号(称为索引)访问它们
list = [1, 2, 3, 4, 5]
str = python
- 通过索引取值: list[i] = 1
- 通过索引进行切片: list[0:2] = [1, 2]
- 序列相加: list+list = [1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
- 序列相乘: list*2 = [1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
- 判断元素是否在序列中: (2 in list) = True
- 列表添加元素: list.append(6): [1, 2, 3, 4, 5, 6]
- 根据值删除元素: list.remove(2): [1, 3, 4, 5, 6]
- 根据索引删除元素: del list[0]: [3, 4, 5, 6]
- 根据索引删除元素: list.pop(0): [4, 5, 6]
- 内置方法 len(), max(), min(), sorted(), list(), str(), reversed()
集合
指的是一个::无序的不重复::元素序列
a = {1, 2, 3, 4, 5}
b = {4, 5, 6, 7, 8}
-
::连接删除多余: a b:: = {1, 2, 3, 4, 5, 6, 7, 8} - ::连接删除所有重复: a ^ b:: = {1, 2, 3, 6, 7, 8}
- 显示重复元素: a & b = {4, 5}
- 删除前一个的重复元素: a - b = {1, 2, 3}
- 集合增加元素: a.add(6): {1, 2, 3, 4, 5, 6}
- 更新集合: a.update({7, 8}): {1, 2, 3, 4, 5, 6, 7, 8}
- 根据值删除元素: a.remove(6): {1, 2, 3, 4, 5, 7, 8}
- 删除集合第一个元素: a.pop(): {2, 3, 4, 5, 7, 8}
字典
每个键值(key=>value)对用::冒号:::分割,每个对之间用::逗号,::分割,整个字典包括在::花括号{}::中
dic = {'Chinese': 100, 'English': 99}
- 字典增加元素: dic[‘Maths’] = 98: {‘Chinese’: 100, ‘English’: 99, ‘Maths’: 98}
- 更新字典: dic.update({‘PE’: 90, ‘Art’: 80}): {‘Chinese’: 100, ‘English’: 99, ‘Maths’: 98, ‘PE’: 90, ‘Art’: 80}
- 删除元素: del dic[‘Maths’]: {‘Chinese’: 100, ‘English’: 99, ‘PE’: 90, ‘Art’: 80}
- 查找键对应的值: dic.get(‘Chinese’)= 100
- 输出全部元素: dic.items()= dict_items([(‘Chinese’, 100), (‘English’, 99), (‘PE’, 90), (‘Art’, 80)])
- 输出全部键: dic.keys()= dict_keys([‘Chinese’, ‘English’, ‘PE’, ‘Art’])
- 输出全部值: dic.values()= dict_values([100, 99, 90, 80])
key = ["first", "second"]
value = ["Tiger", "Omi"]
- 用zip函数连接键和值,再用dict函数转化为字典: dict(zip(key, value))= {‘first’: ‘Tiger’, ‘second’: ‘Omi’}
列表、元祖、集合、字典
- 列表[ ],元组( ),集合{ },字典{ }
- 列表和元祖的主要区别:列表可以修改元素,元组不行
- 集合的特点:无序不重复
- 字典的特点:由多个键值对用逗号分开构成
numpy库
(!其中数组与python列表不同)
import numpy as np
- 生成指定数量个整形元素的数组: np.arange(6): [0 1 2 3 4 5]
- 生成一定间隔的整形元素的数组: np.arange(0,6,2): [0 2 4]
- 生成指定数量个0的数组: np.zeros(3): [0. 0. 0.]
- 生成指定数量个1的数组: np.ones(3): [0. 0. 0.]
- 生成指定行、列的的数组并填充指定元素: np.full((2, 3), 1): [[1 1 1] [1 1 1]]
a = np.full((2, 3), 1)
- 获取数组每一维度的大小(形状)信息: a.shape = (2, 3)
- 获取数组元素个数: a.shape = 6
- ::numpy数组直接进行运算,而不是像python列表那样是连接::
requests库
import requests as r
url = "http://baidu.com" # 定义url地址
res = r.get(url) # 获取响应内容
a = r.status_code # 获取响应状态(200:成功,404:找不到,500:超时)
b = r.text # 以文本形式输出网页源码
c = r.content # 以字节流输出网页源码
正则表达式(常用)
- [ABC] 匹配字符串里所有包含在[ ]中的字符
[pl] 匹配 "python level 3" 中的 p l 字符
- [^ABC] 匹配字符串里所有不包含在[ ]中的字符
[^pl] 匹配 "python level 3" 中的 y t h o n e v 3 字符
- [A-Z] 匹配字符串里所有包含在区间内的字符
[A-Z] 匹配字符串中所有的大写字母
[a-z] 匹配字符串中所有的小写字母
[0-9] 匹配 字符串中所有的数字
- \w 匹配字母、数字、下划线。等价于 [A-Za-z0-9_]
- . 匹配除换行符(\n、\r)之外的任何单个字符
- $ 匹配输入字符串的结尾位置
- ( ) 标记一个子表达式的开始和结束位置
-
- 匹配前面的子表达式零次或多次
- ? 匹配前面的子表达式零次或一次
-
- 匹配前面的子表达式一次或多次
-
指明两项之间的一个选择
re库
import re
- re.search(pattern, string, flag) 在一个字符串中搜索匹配正则表达式的第一个位置,返回match对象
print(re.search('t', 'python'))
结果:<re.Match object; span=(2, 3), match='t'>
print(re.search(r'[a-z]', 'python'))
结果:<re.Match object; span=(2, 3), match='p'>
print(re.search(r'[a-z]*', 'python'))
结果:<re.Match object; span=(0, 6), match='python'>
print(re.search(r'[a-z]', 'python').group())
结果:p
- re.match(pattern, string, flag) 从一个字符串的::开始位置::起匹配正则表达式,返回match对象
print(re.match('t', 'python'))
结果:None
print(re.match(r'[a-z]', 'python'))
结果:<re.Match object; span=(0, 1), match='p'>
print(re.match(r'[a-z]+', 'python'))
结果:<re.Match object; span=(0, 6), match='python'>
print(re.match('p', 'python').group())
结果:p
- re.findall(pattern, string, flag) 搜索字符串,以列表类型返回::全部::能匹配的字符串
print(re.findall('t', 'python'))
结果:['t']
print(re.findall(r'[a-z]', 'python'))
结果:['p', 'y', 't', 'h', 'o', 'n']
print(re.findall(r'[a-z]?', 'python'))
结果:['p', 'y', 't', 'h', 'o', 'n', '']
print(re.findall(r'[a-z]+', 'python'))
结果:['python', '']
print(re.findall(r'[a-z]*', 'python'))
结果:['python']
print(re.findall(r'p|n', 'python'))
结果:['p', 'n']
- re.split(pattern, string, flag) 将一个字符串按照正则表达式匹配结果进行::分隔::,返回列表
print(re.split('t', 'python'))
结果:['py', 'hon']
HTML
(Hyper Text Markup Language)超文本标记语言
<!DOCTYPE html>
<html>
<head></head>
<body>
<h1>最大标题</h1>
<h6>最小标题</h6>
<p>段落标签</p>
<a>超链接标签</a>
<img/>
<audio></audio>
<video></video>
</body>
</html>
json库
import json
a = [1,2,3,4,5,6]
b = json.dumps(a) # 编码
c = json.loads(b) # 解码