python基础部分学习笔记2

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小数值中文名称
white255,255,2551,1,1白色
yellow255,255,01,1,0黄色
magenta255,0,2551,0,1洋红
cyan0,255,2550,1,1青色
blue0,0,2550,0,1蓝色
black0,0,00,0,0黑色

turtle库默认用小数值,但也可以切换
使用turtle.colormode(mode)函数切换,mode写1.0为小数值模式,255为整数值模式。

库引用

格式:

import <库名>
<库名>.<函数名><函数参数>

from <库名> import<函数名>

from<库名> import *#此种方式可能会使库中某个函数与
<函数名>(<函数参数>)#用户自定义某个函数重名

import <库名> as <库别名>#以此可方便调用,且防止库重名
<库别名>.<函数名>(<函数参数>)#最建议用这种方式进行库的调用

画笔控制函数

画笔想象为海龟,画笔操作后一直有效,且一般成对出现
turtle.penup()   别名 turtle.pu() → 相 当 于 抬 起 画 笔 , 海 龟 在 飞 行 , 此 时 不 在 画 布 上 形 成 图 案 \to 相当于抬起画笔,海龟在飞行,此时不在画布上形成图案
turtle.pendown()   别名 turtle.pd() → 相 当 于 落 下 画 笔 , 海 龟 在 爬 行 \to 相当于落下画笔,海龟在爬行
turtle.pensize(width)   别名 turtle.width(width) → 相 当 于 设 置 画 笔 宽 度 , 海 龟 的 腰 围 \to 相当于设置画笔宽度,海龟的腰围
turtle.pencolor(color) color为颜色字符串小写形式或r,g,b值 → 相 当 于 设 置 画 笔 颜 色 \to 相当于设置画笔颜色

运动控制函数

turtle.forward(d)   别名 turtle.fd(d) → 相 当 于 海 龟 向 前 行 进 , 走 直 线 。 其 中 d 是 行 进 距 离 , 可 为 负 数 , 当 为 负 数 时 , 海 龟 倒 退 行 进 , 单 位 是 像 素 \to 相当于海龟向前行进,走直线。其中d是行进距离,可为负数,当为负数时,海龟倒退行进,单位是像素 线d退
turtle.circle(r,extent=None) → 根 据 半 径 r 绘 制 e x t e n t 角 度 的 弧 形 , r 是 海 龟 行 进 的 半 径 , 圆 心 在 海 龟 左 侧 r 距 离 的 位 置 上 \to根据半径r绘制extent角度的弧形,r是海龟行进的半径,圆心在海龟左侧r距离的位置上 rextent,rr当没有给出第二个参数则绘制圆形。如半径为负数,则圆心在右侧

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

turtle.setheading(angle)   别名 turtle.seth(angle) → 可 改 变 行 进 方 向 , 海 龟 走 角 度 , a n g l e 是 将 海 龟 当 前 的 方 向 改 变 为 一 个 绝 对 的 角 度 \to可改变行进方向,海龟走角度,angle是将海龟当前的方向改变为一个绝对的角度 angle
海龟视角下方向控制

  1. turtle.left(angle) → 海 龟 左 转 \to海龟左转
  2. turtle.right(angle) → 海 龟 右 转 \to海龟右转 (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库
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值