文章目录

  • 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)函数:让在任何位置的海龟,无论它在哪里去到达一个坐标位置。



海龟坐标:

对于海龟自身来说,无论它行进朝哪个方向,只要是它所行进的方向叫前进方向,后面叫后退方向,运行的左侧叫左侧方向,右侧叫右侧方向

故,可使用一些控制海龟方向的函数。

  1. turtle.fd()指的是向海龟的正前方向运行。
  2. turtle.bk()指的是海龟的反方向运行。
  3. turtle.circle()指的是以海龟当前位置,左侧的某一个点为圆心进行曲线运行。
    这些函数可以改变海龟在空间中的位置,进而实现绘图功能。

绝对角度:

x轴的正方向表示0度或360度,Y轴正方向表示90或-270度以此类推

1.turtle.seth(angle)改变海龟的行进方向,且只改变方向而不行进。其中angle为绝对度数。



海龟角度:

对于海龟来说的左右方向

  1. turtle.left(angle)
  2. 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()python turtle代码大全 python turtle.done_第三方库
turtle.pendown()   别名 turtle.pd()python turtle代码大全 python turtle.done_安装方法_02
turtle.pensize(width)   别名 turtle.width(width)python turtle代码大全 python turtle.done_第三方库_03
turtle.pencolor(color) color为颜色字符串小写形式或r,g,b值python turtle代码大全 python turtle.done_第三方库_04

运动控制函数

turtle.forward(d)   别名 turtle.fd(d)python turtle代码大全 python turtle.done_Python_05
turtle.circle(r,extent=None)python turtle代码大全 python turtle.done_Python_06当没有给出第二个参数则绘制圆形。如半径为负数,则圆心在右侧

turtle方向控制函数(仅改变方向,海龟不实质运动)

turtle.setheading(angle)   别名 turtle.seth(angle)python turtle代码大全 python turtle.done_第三方库_07
海龟视角下方向控制

  1. turtle.left(angle)python turtle代码大全 python turtle.done_Python_08
  2. turtle.right(angle)python turtle代码大全 python turtle.done_安装方法_09(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()

效果如图

python turtle代码大全 python turtle.done_python turtle代码大全_10

函数编程

函数名其实就是指向函数的变量
高阶函数:能够接收函数做参数的函数
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库