PYTHON三级复习资料

PYTHON三级复习资料

Posted by BY Jason Cao on March 4, 2021

PYTHON三级复习资料

PYTHON三级复习资料

序列(列表、字符串)

指的是一块可存放多个值的连续内存空间,这些值按一定顺序排列,可通过每个值所在位置的编号(称为索引)访问它们

list = [1, 2, 3, 4, 5]
str = python
  1. 通过索引取值: list[i] = 1
  2. 通过索引进行切片: list[0:2] = [1, 2]
  3. 序列相加: list+list = [1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
  4. 序列相乘: list*2 = [1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
  5. 判断元素是否在序列中: (2 in list) = True
  6. 列表添加元素: list.append(6): [1, 2, 3, 4, 5, 6]
  7. 根据值删除元素: list.remove(2): [1, 3, 4, 5, 6]
  8. 根据索引删除元素: del list[0]: [3, 4, 5, 6]
  9. 根据索引删除元素: list.pop(0): [4, 5, 6]
  10. 内置方法 len(), max(), min(), sorted(), list(), str(), reversed()

集合

指的是一个::无序的不重复::元素序列

a = {1, 2, 3, 4, 5}
b = {4, 5, 6, 7, 8}
  1. ::连接删除多余: a b:: = {1, 2, 3, 4, 5, 6, 7, 8}
  2. ::连接删除所有重复: a ^ b:: = {1, 2, 3, 6, 7, 8}
  3. 显示重复元素: a & b = {4, 5}
  4. 删除前一个的重复元素: a - b = {1, 2, 3}
  5. 集合增加元素: a.add(6): {1, 2, 3, 4, 5, 6}
  6. 更新集合: a.update({7, 8}): {1, 2, 3, 4, 5, 6, 7, 8}
  7. 根据值删除元素: a.remove(6): {1, 2, 3, 4, 5, 7, 8}
  8. 删除集合第一个元素: a.pop(): {2, 3, 4, 5, 7, 8}

字典

每个键值(key=>value)对用::冒号:::分割,每个对之间用::逗号,::分割,整个字典包括在::花括号{}::中

dic = {'Chinese': 100, 'English': 99}
  1. 字典增加元素: dic[‘Maths’] = 98: {‘Chinese’: 100, ‘English’: 99, ‘Maths’: 98}
  2. 更新字典: dic.update({‘PE’: 90, ‘Art’: 80}): {‘Chinese’: 100, ‘English’: 99, ‘Maths’: 98, ‘PE’: 90, ‘Art’: 80}
  3. 删除元素: del dic[‘Maths’]: {‘Chinese’: 100, ‘English’: 99, ‘PE’: 90, ‘Art’: 80}
  4. 查找键对应的值: dic.get(‘Chinese’)= 100
  5. 输出全部元素: dic.items()= dict_items([(‘Chinese’, 100), (‘English’, 99), (‘PE’, 90), (‘Art’, 80)])
  6. 输出全部键: dic.keys()= dict_keys([‘Chinese’, ‘English’, ‘PE’, ‘Art’])
  7. 输出全部值: dic.values()= dict_values([100, 99, 90, 80])
key = ["first", "second"]
value = ["Tiger", "Omi"]
  1. 用zip函数连接键和值,再用dict函数转化为字典: dict(zip(key, value))= {‘first’: ‘Tiger’, ‘second’: ‘Omi’}

列表、元祖、集合、字典

  1. 列表[ ],元组( ),集合{ },字典{ }
  2. 列表和元祖的主要区别:列表可以修改元素,元组不行
  3. 集合的特点:无序不重复
  4. 字典的特点:由多个键值对用逗号分开构成

numpy库

(!其中数组与python列表不同)

import numpy as np
  1. 生成指定数量个整形元素的数组: np.arange(6): [0 1 2 3 4 5]
  2. 生成一定间隔的整形元素的数组: np.arange(0,6,2): [0 2 4]
  3. 生成指定数量个0的数组: np.zeros(3): [0. 0. 0.]
  4. 生成指定数量个1的数组: np.ones(3): [0. 0. 0.]
  5. 生成指定行、列的的数组并填充指定元素: np.full((2, 3), 1): [[1 1 1] [1 1 1]]
a = np.full((2, 3), 1)
  1. 获取数组每一维度的大小(形状)信息: a.shape = (2, 3)
  2. 获取数组元素个数: a.shape = 6
  3. ::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  # 以字节流输出网页源码                                                 

正则表达式(常用)

  1. [ABC] 匹配字符串里所有包含在[ ]中的字符
[pl] 匹配 "python level 3" 中的 p l 字符                                 
  1. [^ABC] 匹配字符串里所有不包含在[ ]中的字符
[^pl] 匹配 "python level 3" 中的 y t h o n e v 3 字符                                            
  1. [A-Z] 匹配字符串里所有包含在区间内的字符
[A-Z] 匹配字符串中所有的大写字母
[a-z] 匹配字符串中所有的小写字母
[0-9] 匹配 字符串中所有的数字                                          
  1. \w 匹配字母、数字、下划线。等价于 [A-Za-z0-9_]
  2. . 匹配除换行符(\n、\r)之外的任何单个字符
  3. $ 匹配输入字符串的结尾位置
  4. ( ) 标记一个子表达式的开始和结束位置
    • 匹配前面的子表达式零次或多次
  5. ? 匹配前面的子表达式零次或一次
    • 匹配前面的子表达式一次或多次
  6. 指明两项之间的一个选择

re库

import re                                                 
  1. 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                                     
  1. 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                                  
  1. 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']
  1. 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)  # 解码