python语言程序设计基础笔记图片

这篇文章主要介绍了python语言程序设计基础笔记图片,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获,下面让小编带着大家一起了解一下。

分章节目录

1、python开发环境配置

1.1 程序语言分类(执行方式):

(1)静态语言:使用编译执行的编程语言 C、C++、java
(2)脚本语言:使用解释执行的编程语言 python、PHP、java

1.2 python程序语法元素分析:

(1)缩进、注释、命名、变量、保留字
(2)数据类型、字符串、整数、浮点数、列表
(2)赋值语句、分支语句、函数

1.3 python保留字

在这里插入图片描述

2、python绘图

2.1 编程语言概述

C 理解计算机系统结构 性能 底层程序
Java 理解主客体关系 面向对像 跨平台
C++ 理解主客体关系 大规模程序 核心编程
VB 理解交互逻辑(人机交互) 桌面应用
Python 理解问题求解 各类问题 通用语言

python优势:语法简洁、生态高产

编程语言层级:机器语言、汇编语言、高级语言、超级语言(庞大生态)

2.2 turtle库使用

库引用
import turtle 常用方式
import turtle as t 更改库名
from turtle import* 后续函数前无需库名

常用函数
setup(1000,1000,50,50) 长、宽、距屏幕左上角x、距屏幕左上角y
fd(100) 前进100
pendown()/penup() 画笔放下/抬起
pensize(20) 画笔尺寸20
pencolor(“red”) 红色画笔
seth(60) 绝对角度60度
right(60)/left(60) 向右/左转60度
circle(30,90) 30为半径,画90度弧形(默认圆心在当前方向左侧)
done() 绘制完成

3、基本数据类型

3.1 数据类型

整数->浮点数->复数(最宽类型)

整数类型:与数学中概念一致 pow(x,y),计算x的y次方
浮点数类型:带小数点的数字
浮点数之间运算存在不确定尾数,不是bug
round(x,d),对x四舍五入,d是小数截取位数 用于辅助浮点数之间的运算
复数类型:很少使用

四种进制
十进制:1019、-217
二进制:0b、0B开头 0b010
八进制:0o、0O开头 0o123
十六进制:0x、0X开头 0X9a

3.2 操作符及运算函数

(1)操作符
+、 -、 * 、/、//(整数除,结果取整)
+x x本身
-x x负值
x%y 余数,模运算,10%3==1
xy** x的y次幂,等同于pow(x,y)

(2)运算函数
abs(x) 绝对值
divmod(x,y) 同时输出商和余数
int(x) 对x取整
float(x) 变成浮点数
complex(x) 变成复数

3.3 字符串类型和操作

2类4种
(1)由一对单引号或双引号表示,单行字符串
(2)一对三单引号或三双引号表示,可表示多行字符串,三单引号可当注释用

字符串序号
正向递增(0、1、2、3…)、反向递减(-1、-2、-3…)

[M] 索引某个字符
[M:N] 切片,不包括N 其中M、N可缺失
[M:N:K] 根据步长K切片 [::-1]将字符串逆序
转义符反斜杠 放在字符前表示字符本意
"\b" 回退
"\n" 换行
"\r" 回车(光标移到行首)

字符串处理函数
len(x) 字符串长度
str(x) 任意x转化为对应字符串
hex(x) 整数x变为十六进制小写字符串
oct(x) 整数x变为八进制小写字符串
chr(u) unicode编码返回字符
ord(x) 字符x转化为unicode编码 python中字符都是unicode编码(统一字符编码)

字符串处理方法
str.lower()/str.upper() 返回字符串的副本,全部小/大写
str.split(step-None) 返回一个列表,由str根据sep被分隔的部分组成
str.count(sub) 返回子串sub在字符串中出现的次数
str.replace(old,new) 旧字符串替换为新字符串
str.center(width,fillchar) 字符串根据宽度居中,其它填充
str.strip(chars) 去掉字符串中在chars中列出的字符
str.join(iter) 字符串中除了最后一个字符外,每个字符后加一个, 用于字符分隔

字符串类型的格式化

format()方法控制槽内部对格式化的配置方式 {<参数序号>:<格式控制标记>}

格式化符号
在这里插入图片描述
例如:“{0:=^20}”.format(“python”) 等号填充 居中对齐 宽度20
默认空格填充,左对齐

3.4 time库的使用

常用函数
time() 获取当前计算机内部时间戳,浮点数 time.time()
ctime() 获取当前时间并返回字符串 最简单
gmtime() 获取当前时间,表示为计算机可处理的时间格式

时间格式化
strftime(tpl,ts) tpl为格式化模板字符串,定义输出效果 ;ts 为计算机内部时间类型变量

>>>t=time.gmtime()
>>>time.strftime(“%Y-%m-%d %H : %M:%S”,t)  #年月日时分秒

strptime(str,tpl) str 为字符串形式的时间值 ;tpl 为格式化模板字符串,定义输入效果

在这里插入图片描述
程序计时应用
perf_counter() 返回一个CPU级别的精确时间计数值,单位为秒,连续调用求差值才有意义 =========>可用于分析程序性能,进而优化
*sleep(s) 程序休眠s秒,s可以是浮点数

4、程序的控制结构

4.1 分支结构

二分支的简洁结构(紧凑)
<表达式1> if <条件> else <表达式2>
条件为真,返回表达式1的值,条件为假,返回表达式2的值

多分支结构
if:
elif:
else:

异常处理
try:
<语句块1>
except:
<语句块2>

4.2 循环结构

遍历循环
for <循环变量> in <遍历结构>
计数、字符串、列表、文件~

无限循环
while <条件> :
<语句块>

Ctrl+C 退出执行当前程序

end="" 传递一个空字符串,这样print函数不会在上一个字符串末尾添加换行符

循环控制保留字:
break: 跳出并结束当前整个循环,执行循环后的语句(这次循环不执行
continue: 结束当次循环,继续执行后续次数循环(不打破当前循环)

4.3 random库概述

伪随机数:使用梅森旋转算法生成的伪随机序列中的元素

包括两类函数,常用共8个
基本随机函数: seed() 、random()
扩展随机函数: randint() 、getrandbits() 、uniform() 、randrange() 、choice() 、shuffle()

常用函数
在这里插入图片描述
随机函数的使用需要掌握的几大能力

  • 能够利用随机数种子产生“确定”伪随机数
  • 能够产生随机整数
  • 能够对序列类型进行随机操作

换行符 / 可将一行长代码分拆到多行

5、函数和代码复用

5.1 函数定义与使用

定义:一段代码的表示,具有特定功能的可重用语句组
作用:降低编码难度、代码复用

一般情况
def <函数名>(<参数>):
<函数体>
return <返回值>

#未定参数是一种占位符,可以无参数,但参数的括号必须保留

可选参数传递
def <函数名>(<非可选参数>,<可选参数>):
<函数体>
return <返回值>

#可选参数一定在后面,计算时如果没有给定可选参数,则按默认的可选参数计算,否则按照给定值计算

还有一种可变参数,def f(x,*b)

参数传递的两种方式 def fact(n,m=1)

  • 按照位置:fact(10,5)
  • 按照名称: fact(m=5,n=10)

函数的返回值

  • 函数可以返回0个或多个结果,不一定有return
  • return后返回值之间用逗号隔开即可

局部变量和全局变量
局部:函数内部变量
全局:程序全局变量

规则:(详见5.1视频6的5min附近)

  • 局部与全局变量不同,局部是内部占位符,与全局变量可能重名但不同,函数运算结束后,局部变量被释放,可以使用global保留字在函数内部使用全局变量
  • 局部变量为组合数据类型且未创建,等同于全局变量

ls.append(a) ls是列表类型,未真实创建则等同于全局变量
若先有ls=[],则被真实创建,属于局部变量

lambda函数

  • 谨慎使用,主要用作一些特定函数或方法的参数,建议用def定义
  • 匿名函数,返回函数名作为结果
  • 用于定义简单的、能够在一行内表示的函数
    <函数名> = lambda <参数> : <表达式>
    #可以无参数
>>>f=lambda x,y : x+y
>>>f(10,15)
25

5.2 代码复用

把代码当成资源进行抽象

代码资源化:程序代码是一种用来表达计算的”资源”
代码抽象化:使用函数等方法对代码赋予更高级别的定义,函数是代码的一种抽象
代码复用:同一份代码在需要时可以被重复使用
模块化设计:通过函数或对象封装将程序划分为模块及模块间的表达
具体包括:主程序、子程序、子程序之间的关系
紧耦合、松耦合:模块内部紧耦合,模块之间松耦合

函数递归的理解
函数定义中调用函数自身的方式

递归两个关键特征

  • 链条:计算过程存在递归链条
  • 基例(基础的实例):存在一个或多个不需要再次递归的基例

递归3个步骤

  • 函数+分支结构
  • 递归链条
  • 递归基例

5.3 pyinstall库的使用

将python源代码打包成可执行文件exe

常用参数
在这里插入图片描述

6、组合数据类型

基本数据类型:集合类型、序列类型(元组、列表)、字典类型

  • str字符串
  • list列表
  • dict字典
  • tuple元组

6.1集合类型及操作

定义:多个元素的无序组合(与数学中概念一致、元素无序唯一、不可更改(即无可变数据类型))

  • 用{}表示,元素之间用逗号分开
  • 建立集合类型用{}或set()
  • 建立空集合类型必须用set()

操作符
在这里插入图片描述

增强操作符
在这里插入图片描述

操作函数或方法
在这里插入图片描述
集合类型应用场景

  • 包含关系比较
  • 数据去重(最重要)

6.2 序列类型及操作

定义:具有先后关系的一组元素

  • 一维元素向量,元素类型可以不同
  • 类似数学序列
  • 元素间由序号引导,通过下标访问序列的特定元素

分类:字符串类型、元组类型、列表类型

6个操作符:
在这里插入图片描述

5个函数和方法:
在这里插入图片描述
序列类型应用场景

  • 元组用于元素不改变的场景,更多用于固定搭配场景
  • 列表更加灵活,它是最常用的序列类型

最主要作用:表示一组有序数据,进而操作它们

  • 元素遍历
  • 数据保护(如果不希望数据被程序所改变,就转换成元组类型,多用于多人合作过程)
6.2.1 元组类型

定义:元组类型是序列类型的一种扩展

  • 一旦创建不可更改,故无特殊操作
  • 使用()或者tuple()创建,元素间用逗号分隔
  • 可以使用或不适用小括号
  • 继承了序列类型的全部通用操作
6.2.2列表类型

定义:列表类型是序列类型的一种扩展,十分常用

  • 创建后可以随意被修改
  • 使用[]或者list()函数创建,元素间用逗号分隔
  • 各元素类型可以不同,无长度限制

列表类型操作函数和方法
在这里插入图片描述
lt 新增5个元素 :
>>>lt += [1,2,3,4,5]
返回数字0在 lt 中的索引 :
>>>lt.index(0)

6.3字典类型及其操作

理解映射

  • 一种键(索引)和值(数据)的对应
  • 字典类型是映射的体现

键值对

  • 键是数据索引的扩展
  • 字典是键值对的集合,键值对之间无序
  • 采用大括号{}和dict()创建,键值对用冒号:表示
    {<键1>:<值1>,<键2>:<值2>,<键3>:<值3>,<键4>:<值4>}

用法:在字典变量中,通过键获得值

<字典变量>={<键1>:<值1>,<键2>:<值2>,<键3>:<值3>,<键4>:<值4>}
<值>=<字典变量>[<键>]

例如:d[“a”]=1

创建字典时,如果相同键对应不同值,字典采用最后(最新)一个"键值对"

空字典生成

>>>de={} ; type(de)     #type(x)  返回变量x的类型
<class ‘dict’>

字典类型操作函数和方法:
在这里插入图片描述
后3个函数的返回信息并不是列表类型

在这里插入图片描述
字典类型应用场景

(1)映射的表达

  • 映射无处不在,键值对无处不在
  • 例如:统计数据出现的次数,数据是键,次数是值

(2)元素遍历
for k in d:
<语句块>

6.4 jieba库概述

jieba是优秀的中文分词第三方库

原理:利用一个中文词库,确定汉字之间的关联概率

jieba库使用说明
精确模式:把文本精确的切分开,不存在冗余单词(最常用)
全模式:把文本中所有可能的词语都扫描出来,有冗余
搜索引擎模式:在精确模式基础上,对长词再次切分

jieba库常用函数
在这里插入图片描述
在这里插入图片描述

7、文件和数据格式化

定义

  • 字符串格式化:将字符串按照一定的规格和样式进行规范
  • 数据格式化:将一组数据按照一定规格和样式进行规范:表示、存储、运算等

7.1文件的使用

文件是数据的抽象和集合

  • 文件是存储在辅助存储器上的数据序列
  • 文件是数据存储的一种形式
  • 文件展现形态:文本文件和二进制文件 只是展现方式,本质上都是二进制存储

文本文件

  • 由单一特定编码组成的文件,如UTF-8编码
  • 由于存在编码,也被看做存储着的长字符串
  • 适用于例如:txt文件、.py文件

二进制文件

  • 直接由比特0和1组成,没有统一字符编码
  • 一般存在二进制0和1的组织结构,即文件格式
  • 适用于例如:.png文件、.avi文件等

文件的打开与关闭
<变量名> = open(<文件名>(路径和名称,同目录可省略) , <打开模式>(文本或二进制))

例如:a=open(“f.txt,rt”)

绝对路径:”D:/PYE/f.txt”或者”D:\\PYE\f.txt”
前面是反斜杠,后面是斜杠(与python转义符产生歧义,故用2个)
相对路径:若源文件与程序同目录,”f.txt” 或者 “./PYE/f.txt”

文件的打开模式
在这里插入图片描述

  • 不注明则默认为 rt
  • b、t 不注明默认为 t
  • a+ 文本、追加写模式、读文件

文件的关闭
<变量名>.close()
尽量别忘了加上这一句

文件内容的读取:
在这里插入图片描述

文件的全文本操作

  • 遍历全文本:一次统一读入;按数量读入,逐步处理;
  • 逐行遍历文件:分行读入,逐行处理

数据的文件写入
在这里插入图片描述
for i in f :指的是从当前位置开始遍历,如果是写入数据需要先把指针调整到文件开始位置

7.2 一维数据的格式化和处理

一维数据:由对等关系的有序或无序数据构成,采用线性方式组织
(对应列表、数组、集合等概念)
二维数据:由多个一维数据构成,是一维数据的组合形式
(例如表格)
多维数据:由一维或者二维数据在新维度上扩展形成

7.2.1 一维数据的格式化和处理

存储-表示-操作

(1)表示

  • 数据间有序,使用列表类型
  • 数据间无序,使用集合类型(表达无序数据的最好结构)
    for语句可以遍历数据

(2)存储

  • 空格分隔:一个或多个空格,不换行(缺点是数据本身不能存在空格)
  • 逗号分隔:英文半角逗号,不换行(缺点是数据本身不能存在英文逗号)
  • 其他方式:其他符号,尽量用特殊符号(缺点是需要根据数据特点定义,通用性较差)

(3)处理

  • 读取处理:txt.split(“空格或特殊符号等”)
  • 写入处理:f.write(‘ ’.join(ls)) 将join前面的空格加入到ls的各个元素之间
7.2.2二维数据的格式化和处理

(1)表示: 使用列表类型

  • 使用两层for循环遍历每个元素
  • 外层列表中每个元素可以对应一行,也可以对应一列

(2)存储
CSV(comma-separated values)数据存储格式:用逗号来分隔值的一种存储方式

  • 国际通用的一二维数据存储格式,一般.csv扩展名
  • 每行一个一维数据,采用逗号分隔,无空行
  • excel和一般编辑文件都可以读入或者另存为csv文件

【注意】

  • 如果某个元素缺失,逗号仍要保留
  • 二维数据的表头可以作为数据存储,也可以另行存储
  • 逗号为英文半角逗号,且逗号与数据之间无空格
  • 一般索引习惯:先行后列
  • 根据一般习惯,外层列表每个元素是一行,按行存

(3)处理

7.3 wordcloud库的使用

wordcloud库把词云当做一个WordCloud对象

  • wordcloud.WordCloud()代表一个文本对应的词云
  • 根据文本中词语出现频率等参数绘制词云
  • 词云形状尺寸颜色等都可以设定

常规方法:w=wordcloud.WordCloud()
在这里插入图片描述
绘制步骤

  • 配置对象参数
  • 加载词云文本
  • 输出词云文件

程序工作:分隔、统计、字体、布局

配置对象参数:wordcloud.WordCloud(<参数>)
在这里插入图片描述

8、程序设计方法学

8.1 程序设计综合介绍

自顶向下:解决复杂问题的有效办法

  • 分解总问题为若干个小问题形式
  • 使用同样方法进一步分解小问题
  • 直至小问题可以被计算机简单明了的解决

自底向上:逐步组建复杂系统的有效测试方法

  • 分单元测试,逐步组装
  • 按照自顶向下相反的路径操作
  • 直至,系统的各部分一组装的思路都经过测试和验证

Python程序设计思维
计算思维:抽象+自动化
编程是将计算思维变成现实的手段

计算生态与Python语言

计算生态以开源项目为组织形式,充分利用“共识原则”和“社会利他”组织人员,在竞争发展、相互依存和迅速更迭中完成信息技术的更新换代,形成了技术的自我演化路径。

没有底层设计、以功能为单位,具备三个特点(竞争发展、相互依存、迅速更迭)

以python为例

  • 以开源项目为代表的的庞大第三方库
  • 库的建设经过野蛮生长和自然选择
  • 库之间相互关联使用,相互依存
  • 社区庞大,新技术更迭迅速

API != 生态
API指应用程序编写接口(经过设计的产物)

用户体验与软件产品
提高用户体验的方法:

  • 进度展示
  • 异常处理
  • 打印输出
  • 日志文件
  • 帮助信息

基本的程序设计模式

  • IPO
  • 模块化设计(模块内部紧耦合,模块之间松耦合)
  • 配置化设计(引擎+配置)

应用开发的四个步骤

  • 产品定义:不仅是功能定义,需考虑商业模式
  • 系统架构:思考产品技术实现,关注数据流、模块化、体系架构
  • 设计与实现:结合架构完成关键设计及系统实现(结合可扩展性、灵活性)
  • 用户体验:从用户角度思考应用效果

8.2 第三方库安装

安装方法

  • 使用pip命令
  • 集成安装方法
  • 文件安装方法

常用pip命令

  • pip install <第三方库名> 安装指定的第三方库
  • pip install -u <第三方库名> 更新已安装的指定第三方库
  • pip uninstall <第三方库名> 卸载指定的第三方库
  • pip download <第三方库名> 下载但不安装指定的第三方库
  • pip show <第三方库名> 列出指定第三方库详细信息
  • pip search <关键词> 根据关键词在介绍和名称中搜索第三方库
  • pip list 列出当前系统已经安装的第三方库

集成安装方法
Anaconda(类似IDLE的开发环境)

  • www.continuum.io link
  • 支持近800个第三方库
  • 包含多个主流工具
  • 适合数据计算领域开发

文件安装方法

  • 某些第三方库需要编译再安装
  • 如果操作系统没有编译环境,则能下载但不能安装

8.3 os库基本介绍

os库提供通用的、基本的操作系统交互功能

  • 路径操作:os.path子库,处理文件路径及信息
  • 进程管理:启动系统中其他程序
  • 环境参数:获得系统软硬件信息等环境参数

1、路径操作(path指一个文件名,可包含路径)
在这里插入图片描述

2、进程管理
os.system(command)

  • 执行程序或命令command
  • 在windows系统中,返回值为cmd的调用返回信息

3、环境参数
在这里插入图片描述

作者:木头水上漂
时间:2020.08.17

猜你喜欢

转载自blog.csdn.net/mynote/article/details/133548920
今日推荐