(1)静态语言:使用编译执行的编程语言 C、C++、java
(2)脚本语言:使用解释执行的编程语言 python、PHP、javascript
(1)缩进、注释、命名、变量、保留字
(2)数据类型、字符串、整数、浮点数、列表
(2)赋值语句、分支语句、函数
C 理解计算机系统结构 性能 底层程序
Java 理解主客体关系 面向对像 跨平台
C++ 理解主客体关系 大规模程序 核心编程
VB 理解交互逻辑(人机交互) 桌面应用
Python 理解问题求解 各类问题 通用语言
python优势:语法简洁、生态高产
编程语言层级:机器语言、汇编语言、高级语言、超级语言(庞大生态)
库引用:
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() 绘制完成
整数->浮点数->复数(最宽类型)
整数类型:与数学中概念一致 pow(x,y),计算x的y次方
浮点数类型:带小数点的数字
浮点数之间运算存在不确定尾数,不是bug
round(x,d),对x四舍五入,d是小数截取位数 用于辅助浮点数之间的运算
复数类型:很少使用
四种进制:
十进制:1019、-217
二进制:0b、0B开头 0b010
八进制:0o、0O开头 0o123
十六进制:0x、0X开头 0X9a
(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) 变成复数
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
默认空格填充,左对齐
常用函数
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可以是浮点数
二分支的简洁结构(紧凑):
<表达式1> if <条件> else <表达式2>
条件为真,返回表达式1的值,条件为假,返回表达式2的值
多分支结构:
if:
elif:
else:
异常处理:
try:
<语句块1>
except:
<语句块2>
遍历循环
for <循环变量> in <遍历结构>
计数、字符串、列表、文件~
无限循环
while <条件> :
<语句块>
Ctrl+C 退出执行当前程序
end="" 传递一个空字符串,这样print函数不会在上一个字符串末尾添加换行符
循环控制保留字:
break: 跳出并结束当前整个循环,执行循环后的语句(这次循环不执行)
continue: 结束当次循环,继续执行后续次数循环(不打破当前循环)
伪随机数:使用梅森旋转算法生成的伪随机序列中的元素
包括两类函数,常用共8个
基本随机函数: seed() 、random()
扩展随机函数: randint() 、getrandbits() 、uniform() 、randrange() 、choice() 、shuffle()
换行符 / 可将一行长代码分拆到多行
定义:一段代码的表示,具有特定功能的可重用语句组
作用:降低编码难度、代码复用
一般情况
def <函数名>(<参数>):
<函数体>
return <返回值>
#未定参数是一种占位符,可以无参数,但参数的括号必须保留
可选参数传递
def <函数名>(<非可选参数>,<可选参数>):
<函数体>
return <返回值>
#可选参数一定在后面,计算时如果没有给定可选参数,则按默认的可选参数计算,否则按照给定值计算
还有一种可变参数,def f(x,*b)
参数传递的两种方式 def fact(n,m=1)
函数的返回值
局部变量和全局变量
局部:函数内部变量
全局:程序全局变量
规则:(详见5.1视频6的5min附近)
ls.append(a) ls是列表类型,未真实创建则等同于全局变量
若先有ls=[],则被真实创建,属于局部变量
lambda函数
>>>f=lambda x,y : x+y
>>>f(10,15)
25
把代码当成资源进行抽象
代码资源化:程序代码是一种用来表达计算的”资源”
代码抽象化:使用函数等方法对代码赋予更高级别的定义,函数是代码的一种抽象
代码复用:同一份代码在需要时可以被重复使用
模块化设计:通过函数或对象封装将程序划分为模块及模块间的表达
具体包括:主程序、子程序、子程序之间的关系
紧耦合、松耦合:模块内部紧耦合,模块之间松耦合
函数递归的理解
函数定义中调用函数自身的方式
递归两个关键特征:
递归3个步骤:
将python源代码打包成可执行文件exe
基本数据类型:集合类型、序列类型(元组、列表)、字典类型
定义:多个元素的无序组合(与数学中概念一致、元素无序唯一、不可更改(即无可变数据类型))
定义:具有先后关系的一组元素
分类:字符串类型、元组类型、列表类型
最主要作用:表示一组有序数据,进而操作它们
定义:元组类型是序列类型的一种扩展
定义:列表类型是序列类型的一种扩展,十分常用
列表类型操作函数和方法
lt 新增5个元素 :
>>>lt += [1,2,3,4,5]
返回数字0在 lt 中的索引 :
>>>lt.index(0)
理解映射:
键值对:
用法:在字典变量中,通过键获得值
<字典变量>={<键1>:<值1>,<键2>:<值2>,<键3>:<值3>,<键4>:<值4>}
<值>=<字典变量>[<键>]
例如:d[“a”]=1
创建字典时,如果相同键对应不同值,字典采用最后(最新)一个"键值对"
空字典生成
>>>de={} ; type(de) #type(x) 返回变量x的类型
字典类型操作函数和方法:
后3个函数的返回信息并不是列表类型
(1)映射的表达
(2)元素遍历
for k in d:
<语句块>
jieba是优秀的中文分词第三方库
原理:利用一个中文词库,确定汉字之间的关联概率
jieba库使用说明:
精确模式:把文本精确的切分开,不存在冗余单词(最常用)
全模式:把文本中所有可能的词语都扫描出来,有冗余
搜索引擎模式:在精确模式基础上,对长词再次切分
定义:
文件是数据的抽象和集合
文本文件
二进制文件
文件的打开与关闭
<变量名> = open(<文件名>(路径和名称,同目录可省略) , <打开模式>(文本或二进制))
例如:a=open(“f.txt,rt”)
绝对路径:”D:/PYE/f.txt”或者”D:\\PYE\f.txt”
前面是反斜杠,后面是斜杠(与python转义符产生歧义,故用2个)
相对路径:若源文件与程序同目录,”f.txt” 或者 “./PYE/f.txt”
文件的关闭
<变量名>.close()
尽量别忘了加上这一句
文件的全文本操作:
数据的文件写入:
for i in f :指的是从当前位置开始遍历,如果是写入数据需要先把指针调整到文件开始位置
一维数据:由对等关系的有序或无序数据构成,采用线性方式组织
(对应列表、数组、集合等概念)
二维数据:由多个一维数据构成,是一维数据的组合形式
(例如表格)
多维数据:由一维或者二维数据在新维度上扩展形成
存储-表示-操作
(1)表示:
(2)存储:
(3)处理
(1)表示: 使用列表类型
(2)存储
CSV(comma-separated values)数据存储格式:用逗号来分隔值的一种存储方式
【注意】
(3)处理
略
wordcloud库把词云当做一个WordCloud对象
常规方法:w=wordcloud.WordCloud()
绘制步骤:
程序工作:分隔、统计、字体、布局
配置对象参数:wordcloud.WordCloud(<参数>)
自顶向下:解决复杂问题的有效办法
自底向上:逐步组建复杂系统的有效测试方法
Python程序设计思维
计算思维:抽象+自动化
编程是将计算思维变成现实的手段
计算生态与Python语言
计算生态以开源项目为组织形式,充分利用“共识原则”和“社会利他”组织人员,在竞争发展、相互依存和迅速更迭中完成信息技术的更新换代,形成了技术的自我演化路径。
没有底层设计、以功能为单位,具备三个特点(竞争发展、相互依存、迅速更迭)
以python为例:
API != 生态
API指应用程序编写接口(经过设计的产物)
用户体验与软件产品
提高用户体验的方法:
基本的程序设计模式
应用开发的四个步骤:
安装方法:
常用pip命令:
集成安装方法
Anaconda(类似IDLE的开发环境)
文件安装方法
os库提供通用的、基本的操作系统交互功能
2、进程管理
os.system(command)
作者:木头水上漂
时间:2020.08.17