库的导入
1.在python中,无论是标准库、第三方库还是自定义库,在使用之前都需要导入。
2.若导入的位置在代码的开始,它的作用域在全局;若是在某个函数中导入3.当库名过长时,可以使用关键字as定义一个别名。
4.一般按照标准库、扩展库、自定义库的顺序进行导入。
导入库的三种方式
(1)import 库名 【as 别名】
>>> import math
>>> math.gcd(56, 64) #注意:必须以“模块名.对象名”的形式进行访问。
8 #计算最大公约数
(2)from 库名 import 对象名【as 别名】
>>> from random import sample #sample,在指定范围内选择不重复元素
>>> sample(range(100), 10) #不需要使用库名作为前缀,减少查询次数,提高访问速度
[98, 68, 95, 85, 5, 65, 51, 9, 30, 49]
(3) from 库名 import*
简单粗暴,一次导入库中所有对象,但一般不推荐
>>> from math import * #不需要使用库名作为前缀
>>> sin(3) #求正弦值
0.1411200080598672
>>> pi #常数π
3.141592653589793
>>> e #常数e
2.718281828459045
>>> radians(180) #将角度转化为弧度
3.141592653589793
>>> log2(8) #计算以2为底8的对数
3.0
Python标准库
Python标准库是随Python安装包一起发布的,用户不需要单独下载,可以随时使用。
turtle库
turtle库:进行图形的基本绘制,下面是一些基本常用函数
(1) setup(width, height, startx, starty):四个参数分别为画布的长、宽, 画布窗口在屏幕的水平起始位置和垂直位置。
(2) penup():没有参数,提起画笔后移动画笔不再绘制图形
(3) pendown():没有参数,放下画笔后移动画笔可以绘制图形
(4)pensize(width):设置画笔宽度,无参时返回当前画笔宽度
(5) pencolor(color):设置画笔颜色,无参时返回当前画笔颜色
(6) color():设置画笔和填充颜色
(7) fillcolor():设置填充颜色
(8) begin_fill():填充颜色之前调用
(9) end_fill():填充颜色之后调用,表示填充颜色结束
(10) fiiling():返回填充的状态,True表示已填充,False表示未填充
(11) clear():清空当前窗口,但是不改变当前画笔的位置
(12) reset():清空当前窗口,并把所有状态重置为默认值
(13) screensize(width, height, bg):设置画布的宽、高、背景颜色
(14) hideturtle():隐藏画笔的turtle形状
(15) showturtle():显示画笔的turtle形状
(16) isvisible():如果turtule可见,返回True
(17) write():输出中文标签,可选的参数有align(left, right, center),font(字体,字号,字形)
(18) forward(distance):把画笔沿当前方向前进distance距离
(19) backward(distance):把画笔沿当前相反的方向后退distance距离
(20) right(angle):向右旋转angle角度
(21) left(angle):向左旋转angle角度
(22) goto(x, y):把当前坐标移动到坐标(x, y)处
(23)seth(to_angle):将画笔朝向某个角度值,该角度是绝对方向角度值
(24)home():设置当前画笔位置为原点,方向朝东
#绘制一个蓝色的五角星
from turtle import*
screensize(500, 500, "green")
color("blue")
pensize(2)
penup()
begin_fill()
for i in range(0, 5):
forward(200)
right(144)
end_fill()
random库
(1)random函数:用来产生【0.0, 1.0)内的随机数
>>> from random import random
>>> random()
0.5127336399098061
(2)randint(a, b):随机生成[a, b]之间的一个整数
>>> from random import randint
>>> randint(1, 10)
5
(3)uniform(a, b):随机生成[a, b]之间的一个小数
>>> from random import uniform
>>> uniform(21, 30)
27.442466683502822
(4)randrange(start, stop, step)生成一个在【start, stop】之间且以step为步长的随机整数
>>> from random import randrange
>>> randrange(1, 49, 3)
22
(5)getrandbits(k):生成一个二进制长度为k位的随机整数
>>> from random import getrandbits
>>> getrandbits(8)
186
(6)choice(seq):从序列类型中随机返回一个函数
>>> from random import choice
>>> choice([1, 4, 6, 9, 12])
12
>>> choice("hello world")
'l'
(7)shuffle(seq):把序列中的元素随机排列并返回
>>> from random import shuffle
>>> a = [1, 5, 9, 16, 23, 45, 66]
>>> shuffle(a)
>>> a
[16, 23, 66, 9, 5, 1, 45]
(8)sample(pop, k):在pop类型中随机选取k个元素并以列表的形式返回
>>> from random import sample
>>> sample('hello world', 5)
['d', 'o', 'e', 'r', 'l']
time库
采用的是格林尼治时间从1970年01月01日00分00秒到现在的总秒数。大致有三个功能:时间处理、时间格式化、程序计时。
时间处理
(1)time():获取当前时间戳
>>> from time import time
>>> time()
1643076798.6631756
(2)gmtiime():将时间戳转换为对应的struct_time对象,当参数为空时,默认获取当前的时间戳
>>> gmtime(1643076798.6631756)
>
time.struct_time(tm_year=2022, tm_mon=1, tm_mday=25, tm_hour=2, tm_min=13, tm_sec=18, tm_wday=1, tm_yday=25, tm_isdst=0)
struct_time对象的元素构成
属性 | 值 |
tm_year | 年份,整数 |
tm_mon | 月份【1,12】 |
tm_mday | 日期【1,31】 |
tm_hour | 小时【0,23】 |
tm_min | 分钟【0,59】 |
tm_sec | 秒【0,59】 |
tm_wday | 星期【0,6】,0表示星期一 |
tm_yday | 该年第几天【1,366】 |
tm_isdst | 是否为夏令时,0表示否,1表示是,-1表示未知 |
(3)ctime:以可读方式返回时间戳表示的时间,若参数为空则默认为当前时间
>>> from time import ctime
>>> ctime()
'Tue Jan 25 10:52:09 2022'
时间格式化
(1)mktime():将当地时间格式化
>>> from time import localtime
>>> from time import mktime
>>> t = localtime()
>>> mktime(t)
1643080219.0
(2)strftime()
>>> from time import strftime
>>> from time import localtime
>>> t = localtime()
>>> strftime("%Y-%m-%d %H:%M:%S", t)
'2022-01-25 11:18:48'
strftime()格式化控制符
格式化控制符 | 描述 |
%a | 星期几的缩写名称Mon~Sun |
%A | 星期几的全称Monday~Sunday |
%b | 月名缩写Jan~Dec |
%B | 月名的全称January~December |
%c | 语言环境的适当日期和时间表示 |
:%d | 日期01~31 |
%H | 24小时制的小时数00~23 |
%I | 12小时制的小时数01~12 |
%j | 一年中的一天 |
%m | 月份01~12 |
%M | 分钟数00~59 |
%p | 上/下午 AM/PM |
%S | 秒数00~59 |
%U | 一年中的星期数(00~53),星期天为星期的开始 |
%w | 星期(0~6),星期天为星期的开始 |
%W | 一年中的星期数(00~53),星期一为星期的开始 |
%x | 本地相应日期表示 |
%X | 本地相应时间表示 |
%y | 两位数的年份0~99 |
%Y | 4位数的年份0001~9999 |
%Z | 当前时区的名称 |
%% | %本身 |
程序计时
perf_counter
from time import perf_counter
start = perf_counter() #开始计时
def yinshufenjie(n):
a = []
y = n
for i in range(2, n+1):
while y:
if y%i == 0:
a.append(i)
y = y/i
else:
break
print(n,'=','*'.join(map(str,a)))
yinshufenjie(89832530) #中间选取了一段因数分解的代码
end = perf_counter() #结束计时
a = end - start
print(a)
输出:
89832530 = 2*5*8983253
7.622213200083934
第三方库
第三方库需要安装之后才能使用。第三方库有三种安装方式:pip工具安装,自定义安装,文件安装。
第三方库的安装
pip工具安装
在命令行中使用pip -h命令可以查看pip常用子命令
pip install 第三方库名:此命令可以下载第三方库并自动安装到系统中
pip list:此命令可以查看安装了哪些第三方库
pip download:此命令可以下载第三方库,但并不是自动安装。
自定义安装
按照第三方库提供的步骤和方法安装。第三方库都有主页用于维护库的代码和文档。
文件安装
有的第三方库无法通过pip工具下载,这时需要到相应网站下载。
常用的第三方库
PyInstaller库
可以在Windows、Linux、Mac Os X等操作系统下把Python源文件打包变成可运行的可执行文件。(通过打包,Python在没有安装Python程序的环境中也可以运行)
(1)pyinstaller Python源程序文件名
执行完毕后,源文件所在目录会生成build和dist两个文件夹,build文件夹用来存储临 时文件,可以安全删除;dist文件夹中存放的是与源文件同名的打包后的程序。目录中的 其他文件是可执行文件的动态链接库。
(2)pyinstaller -F Python源程序文件名
执行后dist目录中可出现以.exe为扩展名的文件,直接双击即可运行。
jieba库
可以将一段中文文本分割成中文词语序列(这是中文及相似语言特有的问题,因为英文可以通过空格符或标点符号分隔)
如. lcut():
>>> import jieba
>>> a = jieba.lcut("人不能飞于是努力走")
>>> a
['人', '不能', '飞', '于是', '努力', '走'] #以列表形式返回