文章目录
- python绘图
- turtle库
- RGB色彩
- 库引用
- 画笔控制函数
- 运动控制函数
- turtle方向控制函数(仅改变方向,海龟不实质运动)
- 循环语句与range()函数
- range()函数
- 函数==式==编程
- time库的使用
- time库基本概念
- 时间获取
- 时间格式化
- 程序计时应用
- 程序设计思维方法
- 自顶向下
- 自底向上(执行)
- 计算思维
- 提高用户体验的方法
- 进度展示
- 学会异常处理
- 其他类方法
- 基本程序设计模式
- 应用开发的四个步骤
- python之标准库
- re标准库
- 第三方库的安装
- 安装Python第三方库的方法
- pip安装方法
- 第三方库的集成安装方法
- 第三方库的文件安装方法
- os库的使用
- os库之路径操作
- os库之进程管理
- os库之环境参数
- PyInstaller库的使用
- 简单的使用
- PyInstaller库常用参数
- jieba库
- jieba库使用说明
- jieba分词的三种模式
- jieba库常用函数
- wordcloud库
- wordcloud库使用说明
- 从数据处理到人工智能
- Python库之数据分析
- Python库之数据可视化
- Python库之文本处理
- Python库之机器学习
- 从web解析到网络空间
- Python库之网络爬虫
- Python库之web信息提取
- Python库之web网站开发
- Python库之网络应用开发
- 从人机交互到艺术设计
- Python库之图形用户界面
- Python库之游戏开发
- Python库之虚拟现实
- Python库之图形艺术
python绘图
turtle库
用import turtle来引入此库。
将turtle想象为一只海龟在屏幕中间游走,它所经过的地方就是所绘的图样。可以设定其行进方向、大小、颜色、等。
turtle.setup(宽,高,x,y)
调整绘图窗体在电脑屏幕中的布局,若省略则默认在中间。屏幕最左上角为坐标原点。turtle.done()
函数,绘制后窗体不会关闭,需要手工关闭退出。
绝对坐标:
turtle空间坐标体系中以窗体的中间为(0,0)点的绝对坐标,即海龟起始位置且面朝x正向。这个坐标值与画布窗体有关,与窗体在屏幕中间的位置无关。 |
1. turtle.goto(x,y)函数:让在任何位置的海龟,无论它在哪里去到达一个坐标位置。
海龟坐标:
对于海龟自身来说,无论它行进朝哪个方向,只要是它所行进的方向叫前进方向,后面叫后退方向,运行的左侧叫左侧方向,右侧叫右侧方向 |
故,可使用一些控制海龟方向的函数。
- turtle.fd()指的是向海龟的正前方向运行。
- turtle.bk()指的是海龟的反方向运行。
- turtle.circle()指的是以海龟当前位置,左侧的某一个点为圆心进行曲线运行。
这些函数可以改变海龟在空间中的位置,进而实现绘图功能。
绝对角度:
x轴的正方向表示0度或360度,Y轴正方向表示90或-270度以此类推 |
1.turtle.seth(angle)改变海龟的行进方向,且只改变方向而不行进。其中angle为绝对度数。
海龟角度:
对于海龟来说的左右方向 |
- turtle.left(angle)
- turtle.right(angle)
RGB色彩
每色取值0-255整数或0-1小数
常用如下
英文名称 | RGB整数值 | RGB小数值 | 中文名称 |
white | 255,255,255 | 1,1,1 | 白色 |
yellow | 255,255,0 | 1,1,0 | 黄色 |
magenta | 255,0,255 | 1,0,1 | 洋红 |
cyan | 0,255,255 | 0,1,1 | 青色 |
blue | 0,0,255 | 0,0,1 | 蓝色 |
black | 0,0,0 | 0,0,0 | 黑色 |
turtle库默认用小数值,但也可以切换
使用turtle.colormode(mode)函数切换,mode写1.0为小数值模式,255为整数值模式。
库引用
格式:
import <库名>
<库名>.<函数名>(<函数参数>)
或
from <库名> import<函数名>
或
from<库名> import *#此种方式可能会使库中某个函数与
<函数名>(<函数参数>)#用户自定义某个函数重名
或
import <库名> as <库别名>#以此可方便调用,且防止库重名
<库别名>.<函数名>(<函数参数>)#最建议用这种方式进行库的调用
画笔控制函数
画笔想象为海龟,画笔操作后一直有效,且一般成对出现turtle.penup()
别名 turtle.pu()
turtle.pendown()
别名 turtle.pd()
turtle.pensize(width)
别名 turtle.width(width)turtle.pencolor(color)
color为颜色字符串小写形式或r,g,b值
运动控制函数
turtle.forward(d)
别名 turtle.fd(d)
turtle.circle(r,extent=None)
当没有给出第二个参数则绘制圆形。如半径为负数,则圆心在右侧
turtle方向控制函数(仅改变方向,海龟不实质运动)
turtle.setheading(angle)
别名 turtle.seth(angle)
海龟视角下方向控制
- turtle.left(angle)
- turtle.right(angle)(angle是在海龟当前行进方向上旋转的角度)
循环语句与range()函数
for<变量> in range(<循环次数>)#变量的值由0~循环次数-1
<被循环执行的语句注意缩进>
'''
如for i in range(5):
print(i)
打印结果是
0
1
2
3
4
i值从0开始逐渐加1
'''
range()函数
主要作用是与for in range()搭配形成计数循环。
range()产生循环计数序列的函数
range(N)产生0到 N-1的整数序列,共N个,如range(5)产生的是0,1,2,3,4,5
range(M,N)产生从M到N-1的整数序列,共N-M个,如range(2,5)产生的是2,3,4
具体实例如下:绘制一个蟒蛇图案
import turtle
turtle.setup(650,350,200,200)
turtle.penup()
turtle.fd(-250)
turtle.pendown()
turtle.pensize(25)
turtle.pencolor("blue")
turtle.seth(-40)
for i in range(4):
turtle.circle(40,80)
turtle.circle(-40,80)
turtle.circle(40,80/2)
turtle.fd(40)
turtle.circle(16,180)
turtle.fd(40*2/3)
turtle.done()
效果如图
函数式编程
函数名其实就是指向函数的变量
高阶函数:能够接收函数做参数的函数
demo
def add(x,y,f):#f是函数作为参数
return f(x)+f(y)
add(-5,9,abs)#函数执行的代码实际是:abs(-5)+abs(9)
time库的使用
time库基本概念
- time库是python中处理时间的标准库
- 计算机时间的表达
- 提供获取系统时间并格式化输出功能
- 提供系统级精确计时功能,用于程序性能分析
格式:
import time
time.<b>()
time库包括三类函数
- 时间获取:time(),ctime(),gmtime()
- 时间格式化输出:strftime(),strptime()
- 程序计时:sleep(),perf()_counter()
时间获取
函数 | 描述 |
time() | 获取当前时间戳,即计算机内部时间值,浮点数eg.time.time()结果可读性不高 |
ctime() | 获取当前时间并以易读方式表示返回字符串如time.ctime() |
gtime() | 获取当前时间,表示为计算机可处理的时间格式如:time.gtime() |
时间格式化
将时间以合理方式展示出来
- 格式化:类似字符串格式化,需要有展示模板
- 展示模板由特定的格式化控制符组成
- strftime()方法
函数 | 描述 |
strftime(tql,ts) | tql是格式化模板字符串,用来定义输出效果,ts是计算机内部时间类型的变量。如time.strftime("%Y-%m-%d %H:%M:%S",t)输出为’2018-01-26 12:55:20’ |
strptime(str,tpl) | str是字符串形式的时间值,tpl是格式化时间模板,用来定义时间效果time.strptime(timeStr,"%Y-%m-%d %H:%M:%S")可以将字符串变为计算机内部可操作的时间。 |
- %B为月份名称(英文全名称),%b月份缩写,%A星期,%a星期缩写,%H为24小时下的时间,%h为12小时下的小时。%P为上午下午的特殊符等。
程序计时应用
- 程序计时指测量起止动作所经历时间的过程
- 测量时间:能够记录时间的流逝:perf_counter()返回一个cpu级别的精确时间计数值,单位为秒,由于这个计数值起点不确定,连续调用差值才有意义。(调用两次赋给不同变量,计算差值)
- 产生时间:sleep(s)让程序休眠s秒时间,单位为秒,可用是浮点数。
程序设计思维方法
自顶向下
解决复杂问题的有效方法
- 将一个总问题表达为若干个小问题组成的形式
- 使用同样方法进一步分解小问题
- 直至,小问题可以用计算机简单明了的解决
自底向上(执行)
逐步组建复杂系统的有效测试方法
- 分单元测试,逐步组装
- 按照自顶向下相反的路径操作
- 直至,系统各部分以组装的思路都经过测试和验证
计算思维
抽象和自动化
- 抽象问题的计算过程,利用计算机自动化求解
提高用户体验的方法
进度展示
- 若程序需要计算时间,可能产生等待,请增加进度展示
- 若程序有若干步骤,需要提示用户还有多少步,请增加进度展示
- 若程序可能存在大量次数的循环,请增加进度展示
学会异常处理
- 当获得用户输入时,对合规性需要检查,需要异常处理
- 当读写文件时,对结果进行判断(是否打开或写入等),需要异常处理
- 当进行输入输出时,对运算结果进行判断(比如除数为0),需要异常处理
其他类方法
- 必要特定位置打印输出进行提示
- 日志文件:对程序异常及用户使用进行定期记录
- 帮助信息:给用户多种方式提供帮助(让用户理解该程序的功能等)
基本程序设计模式
- IPO:Input输入、Process处理、Output输出
- 自顶向下设计
- 模块化函数封装
- 配置化设计(实现接口)程序执行和配置数据分离,将可选参数配置化(自动化的例子)
应用开发的四个步骤
从应用需求到软件产品
- 产品定义:从应用需求充分理解和明确定义。产品定义而不仅是功能定义,要考虑商业模式。
- 系统架构:以系统方式思考产品的技术实现,关注数据流、模块化、体系架构
- 设计与实现:结合架构完成关键设计及系统实现,结合扩展性、灵活性等进行设计优化
- 用户体验:从用户角度思考应用效果
python之标准库
re标准库
re库
第三方库的安装
Python社区https://pypi.org/,在这里可以搜索任何第三方库
如:开发与区块相关的程序
第一步:在pypi.org搜索blockchain
第二步:挑选适合开发目标的第三方库作为基础
第三步:完成自己需要的功能
安装Python第三方库的方法
- 方法1(主要方法):使用pip命令
- 方法2:集成(批量)安装方法
- 方法3:文件安装方法(特殊的第三方库)
pip安装方法
即使用python自带的pip安装工具
输入(cmd)pip-h打出帮助信息
常用命令如下:
- 输入pip install <第三方库名>:安装指定的第三方库
- 输入pip install -U <第三方库名>:使用-U标签更新已安装的指定第三方库
- 输入pip uninstall <第三方库名>:卸载指定的第三方库
- 输入pip download <第三方库名>:下载但不安装指定的第三方库
- 输入pip show <第三方库名>:列出某个指定第三方库的详细信息
- 输入pip serach <关键词>:根据关键词在名称和介绍中搜索第三方库
- 输入pip list:列出当前系统已经安装的第三方库
第三方库的集成安装方法
Anaconda(数据处理方面的集成安装工具) https://www.continuum.io:下在并安装这个,就会有800多个库可以使用而不用安装。
第三方库的文件安装方法
某些第三方库pip下载后,需要编译再安装,若操作系统没有编译环境,则能下载但不能安装。
使用http://www.lfd.uci.edu/~gohlke/pythonlibs/(UCI页面)帮助安装
如:安装wordcloud库
步骤一:在UCI页面上搜索wordcloud
步骤二:下载对应版本的文件
步骤三:使用pip.install<文件名>安装
os库的使用
- OS库提供通用的、基本的操作系统交互功能,是标准库,包含几百个函数。
- 常用路径操作、进程管理、环境参数等几类
- 路径操作:os.path子库,处理文件路径及信息
- 进程管理:启动系统中其他程序
- 环境参数:获得系统软硬件信息等环境参数
os库之路径操作
os.path子库以path为入口,用于操作和处理文件路径
import os.path\import os.path as op(op为这个子库的别名)
函数 | 描述 |
os.path.abspath(path) | 返回path在当前操作系统中的绝对路径 |
os.path.normpath(path) | 归一化path的表示形式,统一用\分隔路径 |
os.path.relpath(path) | 返回当前程序与文件之间的相对路径(relative path) |
os.path.dirname(path) | 返回path中目录的名称 |
os.path.basename(path) | 返回path中最后的文件名称 |
os.path.join(path,*path) | 组合path与paths,返回一个路径的字符串 |
os.path.exists(path) | 判断path对应文件或目录是否存在,返回true或false |
os.path.isfile(path) | 判断path所对应是否为已存在的文件,返回True或False |
os.path.isdir(path) | 判断path所对应是否为已存在的目录,返回True或False |
os.path.getatime(path) | 返回path对应文件或目录上一次的访问时间 |
os.path.getmtime(path) | 返回path对应文件或目录最近一次的修改时间 |
os.path.getctime(path) | 返回path对应文件或目录的创建时间 |
os.path.getsize(path) | 返回path对应文件大小,以字节为单位 |
os库之进程管理
os.system(command):执行程序或命令command,在windows中,返回值为cmd的调用返回信息
如import os
os.system("c:\\Windows\\System32\\calc.exe")#调用计算机,执行完成返回0。表示调用成功
--------------------------------------------
import os
os.system("c:\\Windows\\System32\\mspaint.exe\ D:\\PYECourse\\grwordcloud.png")#通过画图程序并打开某个图,要有空格
os库之环境参数
获取或改变系统环境信息
函数 | 描述 |
os.chdir(path) | 修改当前程序操作的路径 |
os.getcwd() | 返回程序的当前路径 |
os.getlogin() | 获得当前系统登陆用户名称 |
os.cpu_count | 获得当前的cpu数量 |
os.urandom | 获得n个字节长度的随机字符串,通常用于加解密运算(有些字符串不能被有效打印,用16进制打印出来) |
PyInstaller库的使用
- 将.py源代码转换为无需源代码的可执行文件exe(无python环境也可执行)
- PyInstaller库是第三方库,非自带,需要额外安装
- 官网:http://www.pyinstaller.org
- 安装第三方库需要pip工具
- 需要(cmd命令行进行安装):pip install pyinstaller,安装成功后会提示successly installer
简单的使用
- 这个是命令行执行程序,使用cmd命令行来做转换
- (cmd命令行)pyinstaller-F <文件名.py>
- python -m pip install --upgrade pip命令更新
- 会生成build,_pycache_和dist文件,build和_pycache_文件可以安全删除掉
- 在dist文件目录中会有一个与源文件同名的exe文件
PyInstaller库常用参数
参数 | 描述 |
-h | 查看帮助 |
–clean | 清理打包过程中的临时文件 |
-D,–onedir | 默认值,生成dist文件夹(但尽量不要使用默认参数) |
-F,–onefile | 在dist文件夹中只生成独立的打包文件 |
-i<图标文件名.ico> | 指定打包程序使用的图标(icon)文件 |
jieba库
- jieba是优秀的中文分词第三方库
- 中文文本需要通过分词获得单个的词语
- jieba库提供三种分词模式,最简单只需掌握一个函数
- (cmd命令行)pip install jieba进行安装
- jieba分词依靠中文词库,利用一个中文词库,确定汉子之间的关联概率
- 汉子间概率大的组成词组,形成分词结果
- 除了分词,用户 还可以添加自定义的词组
jieba库使用说明
jieba分词的三种模式
- 精确模式(最常用):把文本精确的切分开,不存在冗余单词
- 全模式:把文本中所有可能的词语都扫描出来,有冗余
- 搜索引擎模式:在精确模式的基础上,对长词再次切分
jieba库常用函数
函数和方法 | 描述 |
jieba.lcut(s) | 精确模式,返回一个列表类型的分词结果 |
jieba.lcut(s,cut_all=True) | 全模式,返回一个列表类型的分词结果,存在冗余 |
jieba.lcut_for_search(s) | 搜索引擎模式,返回列表类型的分词结果,存在冗余 |
jieba.add_word(w) | 向分词字典增加新词w |
wordcloud库
wordcloud库是优秀的词云展示第三方库
(cmd命令行) pip install wordcloud
wordcloud库使用说明
wordcloud库把词云当做一个WordCloud对象
- wordcloud.WordCloud()代表一个文本对应的词云
- 可以根据文本中词语出现的频率等参数绘制词云
- 绘制词云的形状、尺寸、颜色都可以设定
w=wordcloud.WordCloud(<参数>)
- 以WordCloud对象为基础
- 配置参数、加载文本、输出文件
- w.generate(txt)向WordCloud对象w中加载文本txt
- w.to_file(filename)将词云输出为图像文件,.png或.jpg格式才能看到效果
- 步骤一:配置对象参数,步骤二:加载词云文本,步骤三:输出词云文件
如:
import wordcloud
c=wordcloud.WordCloud()
c.generate("wordcloud by Python")#以空格分隔单词,单词出现多的效果大,很短的单词过滤掉,根据统计配置字号,颜色环境尺寸配置
- width:指定词云对象生成图片宽度,默认400
- height:指定词云对象生成图片的高度,默认200
- min_font_size:指定词云字体的最小字号,默认4号
- max_font_size:指定词云字体的最大字号,根据高度自动调节
- font_step:指定词云中字体字号的步进间隔,默认为1(从最小到最大的增加)
- font_path:指定字体文件的路径(字体设置),默认None
- max_words:指定词云显示最大单词数量,默认200
- stop_words:指定词云的排除词列表,即不显示的单词列表
- mask:指定词云形状,默认长方形,需要引用imread()。from scipy.misc import imread;mk=imread(“pic.png”);w=wordcloud.WordCloud(mask=mk)
- background_color:指定词云图片的北京颜色,默认为黑
- 中文需要jieba库进行分词并加空格分隔的字符串
从数据处理到人工智能
数据清洗:数据归一化、数据转换、异常值处理
数据挖掘:从数据分析获得知识,产生数据外的价值
Python库之数据分析
- Numpy:表达N维数组的最基础库
- Python接口使用,c语言实现速度快
- Pandas:python数据分析高层次应用库(Series=索引+一维数据;DataFrame=行列索引+二维数据)
- SciPy:数学、科学、工程计算功能库
Python库之数据可视化
- Matplotlib:高质量的二维数据可视化功能库(通过matplotlib.pyplot子库调用各可视化效果)
- Seaborn:统计类数据可视化功能库
- Mayavi:三维科学数据可视化功能库
Python库之文本处理
- PyPDF2:用来处理pdf文件的工具集(加密、解密、整合文件)
- NLTK:自然语言文本处理的第三方库
- Python-docx:创建或更新.doc.docx等文件的计算功能
Python库之机器学习
- Scikit-learn:机器学习方法工具集
- TensorFlow:AlphaGo背后的机器学习计算框架
- MXNet:基于神经网络及深度学习计算功能(自动驾驶、机器翻译等)
从web解析到网络空间
Python库之网络爬虫
- Requests:最友好的网络爬虫库(提供简易易用的类HTTP协议网络爬虫功能,支持连接池、SSL、Cookies、HTTP(s)代理等,Python最主要页面级网络爬虫库)
- Scrapy:优秀的网络爬虫框架(支持批量和定时网页爬取,提供数据处理流程,目前最主要最专业爬虫框架)
- pyspider:强大的web页面爬取系统
Python库之web信息提取
- Beautiful Soup:HTML和XML的解析库(常与网络爬虫搭配使用)
- Re:正则表达式解析和处理功能库(标准库,无需安装)
- Python-Goose:提取文章类型Web页面功能库
Python库之web网站开发
- Django:最流行的Web应用框架(MTV模式:模型、模版、视图)
- Pyramid:规模适中的web系统的应用框架
- Django>Pyramid>Flash好,但后面的比较轻量级
Python库之网络应用开发
WeRobot:微信公众号开发框架
aip:百度AI开放平台接口(人脸、语音、图像搜索等领域功能)
MyQR:提供了生成二维码的系列功能
从人机交互到艺术设计
Python库之图形用户界面
- PYQt5:Qt开发框架的Python接口(可跨平台开发图形用户界面)
- wxPython:跨平台GUI开发框架
- PyGObject:使用GTK+开发GUI的功能库(跨平台)
Python库之游戏开发
- PyGame:简单游戏开发功能库
- Panda3D:开源、跨平台的3D渲染和游戏开发库(提供Python和C++两种接口)
- cocos2d:构建2D游戏和图形界面交互式应用的框架(支持GPU加速)
Python库之虚拟现实
- VR Zero:在树莓派上开发VR应用的Python库
- pyovr:Oculus Rift的Python开发接口
- Vizard:基于Python的通用VR开发引擎
Python库之图形艺术
- Quads:迭代的艺术,对图片进行四分迭代,形成像素风。可以生成动态或静态的图像
- ascii-art:ASCll艺术库,将普通图片转为ASCll艺术风格
- turtle库