目录
一.模块
1.模块的导入和使用
1.1导入整个模块
1.2导入函数
1.3使用as给模块指定别名
2.常见标准库
2.1 import random:
2.2 import math:
2.3正则表达式处理
2.4turtle
二.文件及IO操作
1.文件
1.1绝对路径与相对路径
1.2读取文件
1.2.1打开文件模式
1.2.2写入文件
1.2.3with读取文件
2.CSV文件的读取
一.模块
1.模块的导入和使用
模块 | 将函数存储在称之为模块的独立文件中,再将模块导入到主程序中, import语句:允许在当前运行的程序文件中使用模块中的代码。 |
包 | 包是Python模块的一种组织形式,将多个模块组合在一起,形成一个大的Python工具库。包通常是一个拥有__init__.py文件的目录,它定义了包的属性和方法。 |
1.1导入整个模块
模块 的使用 | pizza.py | def make_pizza(size,*toppings): | |
making_pizza.py | import pizza #导入模块pizza.py pizza.make_pizza(16,'sugar') | The 16 topping: ---sugar The 43 topping: ---green ---sugar | |
from pizza import make_pizza #导入模块pizza.py中的make_pizza函数 make_pizza(16,'sugar') | |||
包 的使用 | my_package包中 pizza.py | from my_package import pizza pizza.make_pizza(16,'sugar') |
1.2导入函数
①导入所有函数:from pizza import *
②导入特定函数
导入model_name.py中的function_name函数:from model_name import function_name
导入model_name.py中的funtion_0, funtion_1, funtion_2函数:
from model_name import funtion_0, funtion_1, funtion_2
making_pizza.py 导入pizza.py中的make_pizza的函数 | from pizza import make_pizza |
1.3使用as给模块指定别名
例如,给模块pizza指定别名p :import pizza as p
2.常见标准库
模块 | 用途 |
os | os 模块提供了许多与操作系统交互的函数,例如创建、移动和删除文件和目录,以及访问环境变量等。 |
sys | sys 模块提供了与 Python 解释器和系统相关的功能,例如解释器的版本和路径,以及与 stdin、stdout 和 stderr 相关的信息。 |
time | time 模块提供了处理时间的函数,例如获取当前时间、格式化日期和时间、计时等。 |
datetime | datetime 模块提供了更高级的日期和时间处理函数,例如处理时区、计算时间差、计算日期差等。 |
random | random 模块提供了生成随机数的函数,例如生成随机整数、浮点数、序列等。 |
math | math 模块提供了数学函数,例如三角函数、对数函数、指数函数、常数等。 |
re | re 模块提供了正则表达式处理函数,可以用于文本搜索、替换、分割等。 |
json | json 模块提供了 JSON 编码和解码函数,可以将 Python 对象转换为 JSON 格式,并从 JSON 格式中解析出 Python 对象。 |
urllib | urllib 模块提供了访问网页和处理 URL 的功能,包括下载文件、发送 POST 请求、处理 cookies 等。 |
2.1 import random:
函数名 | 函数说明 |
randrange(start,stop,step) | start 指定范围的起始值 包含本身,默认是0;stop 指定范围的结束值不包含本身; step 步长,默认步长是1。该函数返回一个整数 |
randint(start,end) | 返回[start end]之间的一个随机整数,start必须小于end |
random() | 返回一个[0.0,1.0)之间的随机小数 |
choice(seq) | 返回一个序列(列表、元组,字符串)中返回一个随机元素 |
shuffle(seq) | 将序列元素随机排列(打乱顺序) |
2.2 import math:
函数名 | 函数的说明 | 示例 |
math.ceil() | 向上取整 | math.ceil(18.1) #19 |
math.floor() | 向下取整 | math.floor(18.1) #18 |
math.sqrt | 求平方根 | math.sqrt(100) |
2.3正则表达式处理
可以用于文本搜索、替换、分割等
模式 | 描述 |
\w | 匹配字母数字及下划线 |
\W | 匹配非字母数字下划线 |
\s | 匹配任意空白字符,等价于\rinf]. |
\S | 匹配任意非空字符 |
\d | 匹配任意数字,等价于[0-9] |
\D | 匹配任意非数字 |
\A | 匹配字符串开始 |
\Z | 匹配字符串结束,如果是存在换行,只匹配到换行前的结束字符串 |
\z | 匹配字符串结束 |
\G | 匹配最后匹配完成的位置 |
\N | 匹配一个换行符 |
\t | 匹配一个制表符 |
A | 匹配字符串的开头匹配字符串的末尾。 |
. | 匹配任意字符,除换行符,当re.DOTALL标记被指定时,则可匹配包括换行符的任意字符。 |
[...] | 用来表示一组字符,单独列出:[amk]匹配 "a','m"或"k" |
[^...] | 不在[]中的字符:[^abc]匹配除a,b,c之外的字符。 |
* | 匹配0个或多个的表达式。 |
+ | 匹配1个或多个的表达式。 |
? | 匹配0个或1个由前面的正则表达式定义的片段,非贪婪方式 |
{n} | 精确匹配n个前面表达式。 |
{n,m} | 匹配n到m次由前面的正则表达式定义的片段,贪婪方式 |
a|b | 匹配a或b |
() | 匹配括号内的表达式,也表示一个组 |
2.4turtle
方法 | 说明 |
forward(d)/fd(d) | 向当前画笔方向移动d像素长度 |
backward(d)/back(d)/bk(d) | 向当前画笔相反方向移动d像素长度 |
goto(x,y)/setpos(x,y)/setposition(x,y) | 将画笔移动到坐标为x,y的位置 |
setx(x) | 设置海龟的横坐标为 x,纵坐标保持不变 |
sety(y) | 设置海龟的纵坐标为 y,横坐标保持不变 |
penup()/up() | 提起笔移动,不绘制图形,用于另起一个地方绘制 |
pendown()/down() | 放下笔,移动时绘制图形,缺省时也为绘制 |
right(degree)/rt(degree) | 顺时针移动degree° |
left(degree)/lt(degree) | 逆时针移动degree° |
setheading(angle)/seth(angle) | 设置海龟的朝向为 angle |
circle(radius, extent=None, steps=None) | 绘制圆弧 |
dot(radius,colorstr) | 绘制一个指定直径和颜色的圆点 |
home() | 设置当前画笔位置为原点,朝向东 |
二.文件及IO操作
1.文件
文件:以计算机硬盘为载体存储在计算机上的信息集合,文件可以是文本文档、图片、程序等。
计算机文件基本上分为二种:二进制文件(没有统一的字符编码)
纯文本文件(有统一的编码,可以被看做存储在磁盘上的长字符串)
纯文本文件编码格式:ASCII、ISO-8859-1、GB2312、GBK、UTF-8、UTF-16 等。
二进制文件与文本文件的一个最主要的区别在于是否有统一的字符编码格式,二进制文件顾名思义是直接由0与1组成,无统一的字符编码。如图片文件(jpg、png),视频文件(avi)等。
1.1绝对路径与相对路径
相对路径 | 当前工作目录来确定文件或者文件夹位置 | f = open('test.txt',mode='w',encoding='utf-8') 退到上一级目录:f = open('../test.txt') |
绝对路径 | 从根目录开始到文件\文件夹为止的完整路径 | path = os.getcwd() #目前文件位置 filename = path + '/test.txt' f = open(filename,mode='r',encoding='utf-8') |
1.2读取文件
打开文件 | 详见1.1绝对路径与相对路径 | |
读取文件内容 | 读取5个字符 | context = f.read(5) |
读取一行 | context = f.readline() | |
打印全部 | context = f.readlines() | |
关闭文件 | f.close() |
1.2.1打开文件模式
mode | 解释 |
r | 只读【默认模式,文件必须存在,不存在则抛出异常】 |
w | 只写,写之前会清空文件的内容,如果文件不存在,会创建新文件 |
a | 追加,在原本内容中继续写,如果文件不存在,则会创建新文件 |
r+ | 可读可写 |
w+ | 打开一个文件用于读写。如果该文件已有则将其覆盖。如果该文件不存在,创建新文件。 |
a+ | 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 |
b | rb、wb、ab、rb+、wb+、ab+意义和上面一样,用于二进制文件操作 |
1.2.2写入文件
代码 | 结果 | |
写入一行 | f.write('你好,我是mia\n') f.write('你是谁\n') | 你好,我是mia 你是谁 |
写入若干行 | f.writelines(['你好,我是mia\n', '你是谁\n']) | |
a=['你好,我是mia\n', '你是谁\n'] | ||
context = ['你好,我是mia','你是谁'] | ||
输入写入 | date = input('请输入今天的日期:') f.write(date+'\n') |
1.2.3with读取文件
with open('test.txt', mode='r', encoding='utf-8') as f: |
2.CSV文件的读取
读取文件 | with open('data.csv',mode='r',encoding='utf-8') as f: | ['姓名','科目','成绩'] |
head = next(cf) #获取表头 | ['张蘑菇','python','99'] | |
写入 | with open('data.csv',mode='w',encoding='utf-8') as f: | |
lista = [['Bob','C++','79'],['Job','MySQL','89']] cf.writerow(lista) | ||
随机生成信息 | from my_package import my_tools |