Turtle库:
Turtle库是Python语言中一个很流行的绘制图像的函数库。
常用turtle功能函数:
函数 | 含义 |
---|---|
turtle.bgcolor(“red”) | 设置画面背景颜色 |
turtle.setup(width = 200,height = 200,startx = 0,starty = 0) | 设置窗口大小和在屏幕上的坐标 |
turtle.bgpic(“1.gif”) | 设置背景图片,只支持gif格式 |
turtle.onscreenclick(x,y) | 用户点击屏幕时获得笔的坐标,制作app时响应用户的点击操作 |
turtle.bye() | 退出turtle,无任何提示信息 |
turtle.exitonclick() | 点击后退出turtle |
turtle.done() | 关闭turtle,一般在使用完turtle后添加,否则会无响应 |
turtle.Pen() | 启用画笔 |
turtle.Pen().color(“cc4455”) | 画笔颜色设置 |
turtle.Pen().forward(2) | 画笔前进长度,以像素为单位 |
turlte.Pen().backward(2) | 画笔后退长度 |
turtle.Pen().home() | 画笔初始位置 |
turtle.Pen().left(90) | 画笔向左转 |
turtle.Pen().right(90) | 画笔向右转 |
turtule.width(3) | 设置画笔宽度,以像素为单位 |
t = turtle.Pen() | 让t代表turtle.Pen(),简化代码 |
t.penup() | 抬起笔,停止写 |
t.pendown() | 放下笔,开始写 |
t.write(“Python”,font=(“Arial”,”23”,”bold”)) | 写指定内容“Python”,并设置字体,字号,加粗 |
t.circle(4) | 以参数为半径画圆 |
t.dot(4) | 以参数为直径画点 |
t.postion() | 笔的坐标 |
t.heading() | 笔的朝向 |
t.setx(position[0]) | 设置笔的x坐标为position记录的x坐标,position由position = t.position()获得 |
t.sety(Position[1]) | 设置笔的y坐标 |
t.setheading(30) | 设置笔的朝向,画笔默认向右为正方向 |
t.setpos(x,y) | 设置笔的坐标 |
t.fillcolor(“red”) | 设置填充颜色 |
t.begin_fill() | 开始填充 |
t.circle(5) | 画圆填充 |
t.end_find() | 填充结束 |
t.goto(x,y) | 笔移动到坐标(x,y) |
t.speed(1) | 笔的移动速冻,参考范围0.5-10,范围之外为0,最快,不设置为最慢 |
t.hideturtle()/t.showturtle() | 隐藏画笔/显示画笔 |
t.reset() | 删除画的内容,还原画笔参数初始值 |
t.clear() | 删除画的内容,不修改画笔参数 |
蟒蛇绘制实例:
程序代码:
1 | import turtle |
turtle.pensize()函数表示小乌龟运动轨迹的宽度。它包含一个输入参数,这里我们把它设为30像素,用pythonsize变量表示。
turtle.pencolor()函数表示小乌龟运动轨迹的颜色。
turtle.seth(angle)函数表示小乌龟启动时运动的方向。他包含一个输入参数,是角度值。其中,0表示向东,90度向北,180度向西,270度向南。负值表示相反的方向。
main()函数给出了小乌龟爬行的窗体大小,爬行轨迹颜色和宽度以及初始爬行的方位。
turtle.circle()函数让小乌龟沿着一个圆形爬行。参数rad描述圆形轨迹半径的位置。
参数angle表示小乌龟沿着圆形爬行的弧度值。
turtle.fd()函数表示乌龟向前直线爬行移动。
程序运行结果:
math库:
math库中常用的数学函数:
函数 | 含义 |
---|---|
圆周率pi | ∏的近似值,15位小数 |
自然数e | e的近似值,15位小数 |
ceil(x) | 对浮点数向上取整 |
floor(x) | 对浮点数向下取整 |
pow(x,y) | 计算x的y次方 |
log(x) | 以e为基的对数 |
log10(x) | 以10为基的对数 |
sqrt(x) | 平方根 |
exp(x) | e的x次幂 |
degress(x) | 将弧度值转换成角度 |
radians(x) | 将角度值转换位弧度值 |
sin(x) | 正弦函数 |
cos(x) | 余弦函数 |
tan(x) | 正切函数 |
asin(x) | 反正弦函数 |
acos(x) | 反余弦函数 |
atan(x) | 反正切函数 |
random库:
random库为随机数库。
random库中常用的函数:
函数 | 含义 |
---|---|
seed(x) | 给随机数一个种子值,默认随机种子是系统时钟 |
random() | 生成一个[0,1.0)之间的随机小数 |
uniform(a,b) | 生成一个a到b之间的随机小数 |
randint(a,b) | 生成一个a到b之间的随机整数 |
randrange(a,b,c) | 随机生成一个从a到b以c递增的数 |
choice(< lsit >) | 从列表中随机返回一个元素 |
shuffle(< list > ) | 键列表中的元素随机打乱 |
sample(< list >, k) | 从指定列表随机获取k个元素 |
随机数库及其使用:
- 因为计算机是一个确定设备,不能生成真正的随机数。所以一个,由计算机产生的随机数都是由一个种子开始的伪随机序列。
- 相同的随机种子,产生相同的伪随机序列,也有利于程序的执行验证。
示例:
1 | from random import * |
math库与random库的使用实例:
圆周率π的计算:
圆周率π是一个无理数,没有任何一个精确公式能够计算,π的计算只能采用近似法。
国际公认的PI值计算采用蒙特卡洛方法。又称为随机抽样或统计实验方法。
应用蒙特卡洛方法:首先构造一个单位正方形和1/4圆。
随机向单位正方形和圆结构抛洒大量点,对于每个点,可能在圆内或者圆外,当随机抛点数量达到一定程度,圆内点将构成圆的面积,全部抛点将构成矩形面积。圆
内点数除以圆外点数就是面积之比,即π/4。随机点数越大,得到的π值越精确。
π计算问题的IPO表示如下:
- 输入:抛点的数量
- 处理:对于每个抛洒点,计算点到圆心的距离,通过距离判断该点在圆内或是圆外。统计在圆内点的数量
- 输出:π值
程序代码如下:
1 | #pi.py |
OS库常用函数
- os.getcwd() 获得当前路径
- os.listdir(path) 获得目录中的内容
- os.mkdir(path) 创建目录
- os.rmdir(path) 删除目录
- os.isdir(path) os.isfile(path) 判断是否为目录或者文件
- os.remove(path) 删除文件
- os.rename(old, new) 重命名文件或者目录
- os.name 输出字符串指示正在使用的平台。如果是window 则用’nt’表示,对于Linux/Unix用户,它是’posix’
- os.system() 运行shell命令
- os.path.split() 返回一个路径的目录名和文件名
- os.path.splitext() 分离文件名与扩展名
- os.path.getsize(name) 获得文件大小,如果name是目录返回0L
- os.getegid() 返回当前进程(process)所属的有效group id 只有unix可用
- os.geteuid() 返回当前进程所属的用户ID (Unix)
- os.getgid() 返回当前进程所属的真实组ID(real group id)
- os.getlogin() 返回当前登陆用户名
- os.getpgrp() 返回当前进程组的ID(Unix)
- os.getpid() 返回当前进程的PID,( Unix, Windows )
- os.getppid() 返回当前进程父进程的ID(Unix)
- os.getuid() 返回当前进程所属用户ID(Unix)
random库
random.random()
生成一个0到1之间的随机浮点数,包括0但不包括1,也就是[0.0, 1.0)。
random.uniform(a, b)
生成a、b之间的随机浮点数。不过与randint不同的是,a、b无需是整数,也不用考虑大小。
random.choice(seq)
从序列中随机选取一个元素。seq需要是一个序列,比如list、元组、字符串。
random.choice([1, 2, 3, 5, 8, 13]) #list
random.choice(‘hello’) #字符串
random.choice([‘hello’, ‘world’]) #字符串组成的list
random.choice((1, 2, 3)) #元组
都是可行的用法。
random.randrange(start, stop, step)
生成一个从start到stop(不包括stop),间隔为step的一个随机数。start、stop、step都要为整数,且start<stop。
random.sample(population, k)
从population序列中,随机获取k个元素,生成一个新序列。sample不改变原来序列。
random.shuffle(x)
把序列x中的元素顺序打乱。shuffle直接改变原有的序列。
seed()方法改变随机数生成器的种子,可以在调用其他随机模块函数之前调用此函数, 注意其实是伪随机数,只要初始值一样,得到的结果会是一样的,在python中,默认用系统时间作为seed。你也可以手动调用random.seed(x)来指定seed。
datetime库
datetime模块定义了5个类,分别是
- datetime.date:表示日期的类
- datetime.datetime:表示日期时间的类
- datetime.time:表示时间的类
- datetime.timedelta:表示时间间隔,即两个时间点的间隔
- datetime.tzinfo:时区的相关信息
datetime.date类:
date类有三个参数,datetime.date(year,month,day),返回year-month-day
方法:
- datetime.date.ctime(),返回格式如 Sun Apr 16 00:00:00 2017
- datetime.date.fromtimestamp(timestamp),根据给定的时间戮,返回一个date对象;datetime.date.today()作用相同
- datetime.date.isocalendar():返回格式如(year,month,day)的元组,(2017, 15, 6)
- datetime.date.isoformat():返回格式如YYYY-MM-DD
- datetime.date.isoweekday():返回给定日期的星期(0-6),星期一=0,星期日=6
- datetime.date.replace(year,month,day):替换给定日期,但不改变原日期
- datetime.date.strftime(format):把日期时间按照给定的format进行格式化。
- datetime.date.timetuple():返回日期对应的time.struct_time对象
- datetime.date.weekday():返回日期的星期
datetime.time类:
time类有5个参数,datetime.time(hour,minute,second,microsecond,tzoninfo),返回08:29:30
- datetime.time.replace()
- datetime.time.strftime(format):按照format格式返回时间
- datetime.time.tzname():返回时区名字
- datetime.time.utcoffset():返回时区的时间偏移量
datetime.datetime类:
datetime类有很多参数,datetime(year, month, day[, hour[, minute[, second[, microsecond[,tzinfo]]]]]),返回年月日,时分秒
- datetime.datetime.ctime()
- datetime.datetime.now().date():返回当前日期时间的日期部分
- datetime.datetime.now().time():返回当前日期时间的时间部分
- datetime.datetime.fromtimestamp()
- datetime.datetime.now():返回当前系统时间
- datetime.datetime.replace()
- datetime.datetime.strftime():由日期格式转化为字符串格式
- datetime.datetime.strptime():由字符串格式转化为日期格式
datetime.timedelta类:
- datetime.datetime.timedelta用于计算两个日期之间的差值,
datetime.datetime.strptime():由字符串格式转化为日期格式