Python语言程序设计 小结
1.1
1、计算机是根据指令操作数据的设备, 计算机的发展参照摩尔定律 表现为 指数方式,程序设计是计算机可编程性的体现,
2、- 计算机的功能性和可编程性
- 编译和解释、 静态语言和脚本语言
-IPO、理解问题的计算部分
-掌握计算机编程的价值
1.2
1、Python的两种编程方式:交互式和文件式
1.4 Python程序语法元素分析
1、程序的框架格式 缩进表达程序的格式框架 缩进是语法的一部分(须严格遵行)
2、命名与保留字
3、数据类型
字符串、整数、浮点数、列表
正向递增序号、反向递减序号
字符串的使用:索引和切片
4、语句与函数
5、Python程序的输入输出
2.1
turtle 库: 画笔控制函数(penup pu,pendown pd,pensize width,pencolor),运动
控制函数(fd,bk,circle 左),方向控制函数(seth,left,right),循环语句与range函数
(for,in,range)
3.1 数字类型及操作
字符串类型及操作
字符串类型的表示:一对单引号或一对双引号表示,可表示单行字符串;一对三单引号或
三双引号表示,可表示多行字符串;正向递增序号和反向递减序号;索引和切片 还可根据
步长对字符串切片; 字符串特殊字符 转义符\ '\b'回退 '\n'换行(光标移动到下行首) '\r'回车
(光标移动到本行首)
字符串操作符:
字符串处理函数:
字符串处理方法:
字符串类型的格式化:
3.4 time 库的使用
time库包括三类函数:
-时间获取:
-时间格式化:
注意区分大小写
-程序计时:
4.1 程序的分支结构
单分支、二分支、多分支、条件判断及组合、程序的异常处理
异常处理:try-except-finally
4.3 程序的循环结构
字符串遍历循环,列表遍历循环,文件遍历循环for..in...
循环的高级用法:循环与else
*当循环没有被break语句退出时,执行else语句块
-else语句作为“正常”完成循环的奖励
-这里else的用法与异常处理中else用法相似
4.4 random库的使用
-伪随机数:采用梅森旋转算法生成的(伪)随机序列中元素
-random库主要用于生成随机数
-使用random库:import random
random库包括两类函数,常用共8个
-基本随机数函数:seed(),random()
-扩展随机数函数:randint(),getrandbits(),uniform(),randrange(),choice(),shuffle()
1、能够利用随机数种子产生“确定” 伪随机数
2、能够产生随机整数
3、能够对序列类型进行随机操作
蒙特卡罗方法计算圆周率:
5.1 函数的定义与使用
可选参数传递:
函数定义时可以为某些参数指定默认值, 构成可选参数
可变参数传递:
函数定义时可以设计 可变数量参数,即不确定参数总数量
参数传递的两种方式:按照位置或名称方式传递
规则1. 局部变量不同于全局变量
局部变量为组合数据类型且未创建,等同于全局变量
局部变量和全局变量:
使用规则
-基本数据类型,无论是否重名,局部变量与全局变量不同
-可以通过global保留字在函数内部声明全局变量
-组合数据类型,如果局部变量未真实创建,则是全局变量
lambda函数:lambda函数返回函数名作为结果
-lambda函数是一种匿名函数,即没有名字的函数
-使用lambda保留字定义,函数名是返回结果
-lambda函数用于定义简单的、能够在一行内表示的函数
建议:最好不用
5.2 七段数码管绘制实例:
-模块化思维:确定模块接口,封装功能
-规则化思维:抽象过程为规则,计算机自动执行
-化繁为简:将大功能变为小功能组合,分而治之
5.3 代码复用与函数递归
递归两个关键特征:
-链条: 计算过程存在递归链条
-基例:存在一个或多个不需要再次递归地基例
-递归是数学归纳法思维的编程体现
递归实现:函数+分支语句
5.4 Pyinstaller库的使用
安装:
-官方网站:http://www.pyinstaller.org
-第三方库:使用前需要额外安装
-cmd命令行:pip install pyinstaller
简单使用:cmd命令行 pyinstaller -F <文件名.py>
该库常用参数:
6.1 集合类型及操作
-定义:集合是多个元素的无序组合
集合元素 不可更改,不能是可变数据类型
集合操作符:
集合处理方法:
集合类型应用场景:
-数据去重:集合类型所有元素无重复
6.2 序列类型及操作
-定义:具有先后关系的一组元素
序列是一个基类类型:分字符串类型、元组类型和列表类型
-序列类型通用操作符:
-序列类型通用函数和方法:
元组类型:
-元组类型是序列类型的一种扩展 元组一旦创建不能被修改
-用小括号()或tuple() 创建,元素间用逗号分隔
-可以使用或不使用小括号
元组类型继承了序列类型的全部通用操作,但因元组创建后不能修改,因此没有特殊操作
列表类型:
-定义:是序列类型的一种扩展,创建后可以随意被修改
-使用【】或list()创建,元素间用逗号分隔
*方括号【】真正创建一个列表,赋值仅传递引用
- 列表类型操作函数和方法:
序列类型应用场景:
-数据保护:如果不希望数据被程序所改变,转换为元组类型
6.4 字典类型及操作
字典类型是映射的体现
字典处理函数及方法:
作用:表达键值对数据并对其进行操作
6.5 jieba库的使用—— 优秀的中文分词第三方库
jieba分词的三种模式:精确模式、全模式、搜索引擎模式
-jieba库常用函数:
**文本词频统计**
7.1 文件的使用
文件是数据的抽象和集合:
-文件是存储在辅助存储器上的数据序列
-文件是数据存储的一种形式
-文件展现形态:文本文件和二进制文件
文本文件:由单一特定编码组成的文件,如utf-8编码 适用于.txt、.py文件等
二进制文件:直接由比特0和1组成,没有统一字符编码 适用于.png文件、.avi文件等
文件的打开- 操作-关闭:
文件内容的读取:
遍历全文本:
-方法一:fo.read() 一次读入,容易处理
-方法二:fo.read(num) 按数量读入,逐步处理
逐行遍历文件:
-方法一:fo.readlines() 一次读入,分行处理
-方法二:for line in fo 分行读入,逐行处理
数据的文件写入:
.seek()函数的用法及作用
7.3 一维数据的格式化和处理
一维数据:采用线性方式组织 对应列表、数组和集合等概念
--存储方式 一、空格分隔 二、逗号分隔 三、其他符号 如特殊符号
--从文件读入数据:.split()方法
--向文件写入数据:.join()方法
二维数据:由多个一维数据构成,是 一维数据的组合形式
多维数据:由一维或二维数据在新维度上扩展形成
高维数据:仅利用最基本的二元关系展示数据间的复杂结构
7.4 二维数据的格式化和处理
-- 二维数据的表示:使用列表类型 二维列表
CSV数据存储格式:
-如果某个元素缺失,逗号仍要保留
--二维数据的读入处理:
--二维数据的写入处理
二维数据的逐一处理:采用二层循环
7.5 Wordcloud库——优秀的词云展示第三方库
--库的基本使用
中英文应用举例:
8.1 体育竞技分析
自顶向下的设计:解决复杂问题的有效方法——分而治之
自底向上的执行:逐步组建复杂系统的有效测试方法——模块化集成
-自顶向下是“系统”思维的简化
8.2 Python程序设计思维
- 计算思维与程序设计
计算思维:抽象问题的计算过程,利用计算机自动化求解,是基于计算机的思维方式
抽象计算过程,关注设计和构造,而非因果
-计算生态与python语言
计算生态:没有顶层设计、以功能为单位、具备三个特点:竞争发展,相互依存,迅速更迭
- 用户体验与软件产品
进度展示、异常处理、
-基本的程序设计模式
IPO、模块化设计、配置化设计
8.3 python第三方库的安装
python社区:https://pypi.org/ >13万个第三方库(python package index)
三种安装方法:
pip install <第三方库名> ——安装指定的第三方库
pip install -U <第三方库名> ——更新已安装的指定第三方库
pip uninstall <第三方库名> ——卸载指定的第三方库
pip download <第三方库名> ——下载但不安装指定的第三方库
pip show <第三方库名> ——列出某个指定第三方库的详细信息
pip search <关键词> ——根据关键词在名称和介绍中搜索第三方库
pip list ——列出当前系统已经安装的第三方库
- 第三方库的集成安装方法
文件安装方法:http://www.lfd.uci.edu/~gohlke/pythonlibs/ UCI页面
8.4 模块OS库的基本使用
还有环境参数的信息可以通过OS模块中函数获取
9.1 从数据处理到人工智能
-python库之数据分析
http://www.numpy.org
http://pandas.pydata.org
http://www.scipy.org
-python库之数据可视化
http://matplotlib.org
http://seaborn.pydata.org/
http://docs.enthought.com/mayavi/mayavi/
-python之文本处理
http://mstamy2.github.io/Py PDF2
http://python-docx.readthedocs.io/en/latest/index.html
-python库之机器学习
https://mxnet.incubator.apache.org/
9.3 从Web解析到网络空间
-python库之网络爬虫
http://www.python-requests.org/
-python库之web信息提取
https://www.crummy.com/software/Beautiful Soup/bs4
https://docs.python.org/3.6/library/re.html
https://github.com/grangier/python-goose
-python库之web网站开发
-python库之网络应用开发
https://github.com/offu/We Ro Bot
https://github.com/Baidu-AIP/python-sdk
https://github.com/sylnsfar/qrcode
9.4 从人机交互到艺术设计
-python库之图形用户界面
https://www.riverbankcomputing.com/software/pyqt
https://pygobject.readthedocs.io
-python库之游戏开发
-python库之虚拟现实
https://github.com/Wayne Keenan/python-vrzero
https://github.com/cmbruns/pyovr
http://www.worldviz.com/vizard-virtual-reality-software
-python库之图形艺术
https://github.com/fogleman/Quads
https://github.com/jontonsoup4/ascii_art
turtle海龟绘图体系:https://docs.python.org/3/library/turtle.html