大小写字母、数字、下划线和汉字等字符组成
大小写敏感、首字母不能是数字、不与保留字相同
被编程语言内部定义并保留使用的字符,比如:if、else等
and/as/assert/break/class/continue/def/elif/else/except/finally/for/from/if/import/in/is/lambda/not/or/pass/raise/return/try/while/with/yield/del/
global/nonlocal/True/False/None
赋值符号,将右侧的赋值给左侧
“==”才是“等于”
输入函数
在控制台输入
输出函数
print("转换后的温度是{: . 2f}c" . format(c))
{}表示槽,后续变量填充到槽中
{:. 2f}c表示将变量c填充到这个位置时取小数点后2位
加 ,end=是输出时,刷新之前出现的数,并且不换行,等号后面为需要加的数,不加可书写""空格
去掉参数最外侧引号并执行余下语句的函数
eval("1+2")>>>3
eval('"1+2"')>>>1+2
eval('print("Hello")')>>>Hello
引用库
import <库名>
import <库名> as <库别名>
给库取个简短的名字,便于输出
在输入的时候不用输入库名
画笔控制成对存在
turtle.penup()或turtle.pu()
表示画笔抬起,不在画布上形成图案或轨迹
启动一个长a,宽b的窗口
turtle.pendown()或turtle.pd()
画笔落下,形成轨迹或图案
turtle.pensize(宽度)或turtle.width(宽度)
设置画笔宽度
书写文字
color为颜色字符串或RGB值
改变画笔颜色
turtle.forward(d)或turtle.fd(d)
控制画笔直线行进d的距离
绘制半径为r度数为b的弧形,以自身向左r的距离为原点
turtle.setheading(角度数)或turtle.seth(角度数)
画笔转向,以自身为中心
右转,d表示再右转方向上旋转的角度
左转
只改变方向,不进行绘制
处理时间的标准库
import time
time.
获取当前时间戳,即计算机内部时间值,浮点数
time.time()
获取当前时间并以易读方式表示,返回字符串
time.ctime()
获取当前时间,表示为计算机可处理的时间格式
time.gmtime()
将时间以合理的方式展示出来
年份
月份
January~December
月份名称的缩写
日期
星期
星期缩写
小时(24小时制)
小时(12小时制)
上/下午
分钟
秒
tpl是格式化模板字符串,用来定义输出效果
ts是计算机内部时间类型变量
>>>t =time. gmtime()
>>>time. strftime("%y-%m-%d %H:&M:%S", t)
'2018-01-26 12:55:20'
str是字符串形式的时间值
tpl是格式化模板字符串,用来定义输入效果
测量起止动作所经历时间的过程
返回一个CPU级别的精准时间计数值,单位为秒
由于这个计数值起点不确定,连续调用差值才有意义
s拟休眠时间,即程序停在那s秒,单位是秒,可以是浮点数
用于·生成随机数
初始化给定的随机种子,默认为当前系统时间
>>>random.seed(10) #产生种子10对应的序列
生成一个[0.0,1.0)之间的随机小数
randint(),getrandbits(),uniform(),randrange(),choice(),shuffle()
生成一个[a,b]之间的随机整数
>>>random.randint(10,100)
>>>64
生成一个[m,n)之间以k为步长的随机整数
>>>random.randrange(10,100,10)
>>>80
生成一个k比特长的随机整数
>>>random.getrandbits(16)
>>>37885
生成一个[a,b]之间的随机小数
>>>random.uniform(10,100)
>>>13.09839497981732
从序列sep中随机选择一个元素
>>>random.choice([1,2,3,4,5,6,7])
>>>4
将序列sep中将元素随机排序,返回打乱后的顺序
>>>s=[1,2,3,4,5,6,7,8,9]
>>>random.shuffle(s)|
>>>print(s)
>>>[3,2,4,5,6,8,7,1,9]
单分支
<表达式1>if<条件>else<表达式2>
if:
else:
if<条件>:
<语句块1>
else:
<语句块2>
......
else:
<语句块2>
不等于
等于
两个条件x和y的逻辑与
两个条件x和y的逻辑或
条件x的逻辑非
try:
<语句块1>
except:
<语句块2>
可正可负,没有取值范围限制
以0b或0B开头
0b010,-0B101
0O或0o开头
以0x或0X开头
带有小数点及小数的数字
取值范围和小数精度存在限制,常规的运算可以忽略
存在不确定尾数,不是bug
定义j=,即=-1
a+bj即为复数,其中a是实部,b是虚部
+
-
*
/
//
10//3=3
x本身
y的负值
余数,模运算
10%3=1
幂运算,x的y次方,
x op=y,即x=x op y, op为二元操作符
op有:+、-、*、/、//、%、**
>>>x=3
>>>x**=3 与x=x**3等价
27
绝对值,x的绝对值
商余,(x//y,x%y),同时输出整除和求余
divmod(10,3)结果为(3,1)
幂余,计算(x**y)%z,[]表示可要可不要
对x进行四舍五入,d是小数截取位数
求最大值
求最小值
将x变成整数,舍弃小数部分
变成浮点数,增加小数部分
将x变成复数,增加虚数部分
complex(4)结果为4+0j
一对单引号或双引号表示单行字符串
一对三单引号或一对三双引号表示多行字符串
当需要出现单引号时,可在其外围加个双引号,以此类推
索引
返回字符串中单个字符
<字符串>[字符串中第几个的编号]
切片
返回字符串中一段字符子串
<字符串>[M:N]
"123456789"[:3]结果是"123"
[M:N:K]表示以步长为K进行切片
"123456789"[1:9:2]结果是"2468"
如果K为负数,即表示从后往前输出
"123456789"[::-1]结果是"987654321"
转义符后的符号表示其本意
"\b"
回退
"\n"
换行(使光标移动到下一行首)
"\r"
回车(是光标移动到本行首)
连接两个字符串x和y
复制n次字符串x
如果x是s的子串,返回True,否则返回False
返回字符串x长度
将任意类型x转换为所对应的字符串形式
输出整数x的十六进制或八进制字符串
将U的Unicode编码返回其对应的字符
将x字符返回其对应的unicode编码
Unicode是Python字符串的编码方式
<字符串>.lower()或<字符串>.upper()
返回字符串的副本,全部字符小写/大写
"ABCDEFG".lower()结果为"abcdefg"
返回一个列表,由字符串根据x被分隔的部分组成
"A,B,C".split(",")结果为['A,B,C']
返回子串x在字符串中出现的个数
将字符串中的x替换成y
将字符串根据宽度x居中,两侧用y填充
将字符串中出现的x去除(只能删除开头或结尾的字符)
"=python=".strip("=np")结果为"ytho"
将变量x除最后一个元素外每个元素后增加一个字符串
",".join("12345")结果为"1,2,3,4,5"
用<字符串>.format(x)表示
将x的元素按顺序填到字符串的槽{}中
可在槽中填写数字修改顺序
for <循环变量> in <循环次数>:
<语句块>
for i in range(N)
<语句块>
for i in range(M:N:K) 从M到N-1,步长为K
从M不到N,以K为步长
s是字符串
c代表字符串中的每个字符,每次从s中按顺序去除一个字符到c中
>>>for c in "python123":
>>>print(c,end=",")
>>>p,y,t,h,o,n,1,2,3,
ls是一个列表
>>>for i in [123,"py",456]:
>>>print(i,end=",")
>>>123,py,456
fi是一个文件标识符
while<条件>:
<语句块>
>>>a=3
>>>while a>0:
>>>a=a-1
>>>print(a)
>>>2 1 0
跳出并结束当前整个循环,执行循环后的语句
结束当次循环,继续执行后续次数循环
>>>for i in "python":
>>>if c=="t":
>>>continue
>>>print(i,end="")
>>>pyhon
不能存在可变类型数据
不存在相同元素
{ }表示,元素间用逗号分隔
建立空集合用set{}
并
差
交
补
返回True或False,判断s和t的子集关系
返回True/False,判断s和t的包含关系
如果x不在集合S中,将x增加到S
消除S中元素s,如果x不在集合S中,不报错
消除S中元素s,如果x不在集合S中,产生KeyError异常
清楚S中所有元素
随机返回S的一个元素,更新S,若S为空产生KeyError异常
返回集合S的一个副本
返回集合S的元素个数
判断元素x是否在S中
x not in S
将其它类型变量x转变为集合类型
>>>ls=["p","p","y","y",123]
>>>s = set(ls)
>>>{'p','y',123}
具有先后关系的一组元素
字符串类型
一旦创建就不能被修改
使用()或tuple()创建,元素间用逗号分隔
可以用小括号也可以不用
创建后可以随意修改
用[ ]或list()创建,元素用逗号分隔
替换列表ls第i元素为x
用列表lt替换ls切片所对应的元素子列表
删除列表ls中第i元素
删除列表ls中第i到第j以k为步长的元素
更新列表ls,其元素重复n遍
在列表ls最后增加一个元素x
生成一个新列表,赋值ls中所有元素
删除列表ls中的所有元素
在列表ls的第i位置增加元素x
将列表ls中第i位置的元素取出并删除
将列表ls中出现的第一个元素x删除
将列表ls中元素反转
返回一个排序列表,不改变原有序列
修改序列,不返回任何值
x in s
s-a
s+a
s*n
索引,返回s中的第i个元素
切片
返回长度
返回最小值
max(s)
s.index(x)或s.index(x,i,j)
返回序列s从i开始到j位置中第一次出现元素x的位置
返回序列s中出现x中出现的次数
是一种键(索引)和值(数据)的对应
字典中无顺序
是键数据索引的扩展
{<键1>:<值1>,<键2>:<值2>}
用[ ]获取其中的数值
用{ }生成空字典
>>>d={ }
>>>d["s"]=1
>>>{"s":1}
删除字典d中键k对应的数据值
k为数据值的索引
返回字典中的所有键信息
返回字典中所有的值信息
返回字典中所有键值对信息
键k存在,则返回相应值,不在则返回值
键k存在,则取出相应值,不在则返回值
随机从字典d中取出一个键值对,以元组形式返回
删除所有的键值对
返回字典d中元素的个数
函数是一段代码的表示
>>>def<函数名>(<参数(0个或多个>):
>>> <函数体>
>>> return<返回值>
def fact(n):
s = 1
for i in range(1, n+1):
s *=i
return s
调用时,在另一行用实际参数替换定义中的参数
函数可以有参数也可以没有参数,但必须有括号
可选参数必须放在必选参数之后
def <函数名>(<参数>, *b)
<函数体>
return <返回值>
return不是必须保留字
定义程序外部的是全局变量,定义内部是局部变量
局部变量和全局变量可能重名,但也不相同,函数结束后,局部变量被释放
global用来在内部声明是全局变量
局部变量为组合数据类型且未创建,名字又与全局变量相同,即等同于全局变量
返回函数名作为结果
用于定义简单的、能够在一行内表示的函数
<函数名>=lambda<参数>:<表达式>
调用函数自身的方法
递归本身是一个函数,需要函数定义方式描述
函数+分支结构
将.py源代码转换成无需源代码的可执行文件
中文分词处理
精确模式,返回一个列表类型的分词结果
jieba.lcut("中国是一个伟大的国家")
>>>['中国', '是', '一个', '伟大', '的', '国家']
全模式,返回一个列表类型的分词结果,存在冗余
jieba.lcut("中国是一个伟大的国家", cut_all=Ture)
>>>['中国', '国是', '一个', '伟大', '的', '国家']
搜索引擎模式,返回一个列表类型的分词结果,存在冗余
jieba.lcut_for_search("中华人民共和国是伟大的")
>>>['中华', '华人', '人民', '共和', '共和国', '中华人民共和国', '是', '伟大', '的'
向分词词典增加新词w
jieba.add_word("蟒蛇语言")
由单一特定编码组成的文件
由于存在编码,也可以看成储存着的长字符串
例如:txt文件、.py文件
直接由比特0和1的组织组成,没有统一字符编码
例如:.png文件、.avi文件
步骤:打开-操作-关闭
<变量名> =open ( <文件名>,<打开模式>)
<文件名>:文件路径的名称,源文件同目录可省略路径
<打开模式>:文本or二进制(读or写)
路径中的“\”在Python中要改成“\\"或”/“
只读模式,默认值,如果文件不存在,返回filenotfounderror
覆盖写模式,文件不存在则创建,存在则安全覆盖
创建写模式,文件不存在则创建,存在则返回fileexistserror
追加写模式,文件不存在则创建,存在则在文件最后追加内容
二进制文件模式,只读
文本文件模式,默认值
例如open,只读模式,默认值
与r/w/x/a一同使用,在原功能基础上增加同时读写功能
文本形式打开,覆盖写模式
文本形式打开,追加写模式和读文件
读入全部内容,如果给出参数,读入前size长度
读入一行内容,如果给出参数,读入该行前size长度
读入文件所有行,以每行为元素形成列表,如果给出参数,读入前hint行
向文件写入一个字符串或字节流
>>>a.write("中国是一个伟大的国家")
将一个元素全为字符串的列表写入文件
>>>ls=["中国","法国","美国"]
>>>f.writelines(ls)
中国法国美国
改变当前文件操作指针的位置,offset含义如下:
0-文件开头;1-当前位置;2-文件结尾
>>>a.seek(0) #回到文件开头
<变量名> .close( )
定义数据文件格式(接口)
编写程序,根据文件接口解析参数绘制图形
编制数据文件
将一段文本变成词云
pip install Wordcloud下载
一组数据的组织形式
由对等关系的有序或无序数据构成,采用线性方式组织
对应列表、数组和集合等概念
如果数据之间有序,使用列表类型
ls=[3.12314, 4.114]
如果数据之间无序,使用集合类型
sf={ }
使用一个或多个空格分隔进行储存,不换行
缺点:数据中不能存在空格
使用英文半角逗号分隔数据进行储存,不换行
缺点:数据中不能有英文逗号
使用其他符号或符号组织分隔,建议采用特殊符号
缺点:需要根据数据特点定义,通用性较差
中国$美国$日本
txt = open(fname).read( )
ls = txt.split("$")
f.close( )
>>['中国', '美国', '日本']
ls = ['中国', '美国', '日本']
f = open(fname,"w")
f.write(' '.join(ls))
f.close( )
由多个一维数据构成,是一维数据的组合形式
国际通用的一二位数据储存格式,一般是.csv扩展名
每行一个一维数据,采用逗号分隔,无空行
Excel和一般编辑软件都可以读入或另存为CSV文件
如果某个元素缺失,逗号仍要保留
二维数据的表头可以作为数据储存,也可以另行存储
逗号为英文半角逗号,逗号与数据之间无额外空格
按行存或按列存都可以,具体由程序决定
一般索引习惯:ls[row][column],先行后列
fo = open(fane)
ls = [ ]
for line in fo:
line = line.replace("\n","")
ls,append(line.split(","))
fo.close( )
ls = [ [ ], [ ], [ ] ]
f = open(fane,"w")
for item in ls:
f.write(','.join(item) + '\n')
f.close( )
ls = [ [1,2], [3,4], [5,6] ]
for row in ls:
for column in row:
print(column)
由一维或二维数据在新维度上扩展形成
Python打开文本编码报错问题解决
1.首先在打开文本的时候,设置其编码格式,如:open('1.txt', encoding='gbk')
2.若1不能解决,可能是文本中出现的一些特殊符号超出了gbk的编码范围,可以选择编码范围更广的'gb18030',如:open('1.txt',encoding='gb18030')
3.若2任不能解决,说明文中出现了连'gb18030'也无法编码的字符,可以使用'ignore'属性进行忽略,如:open('1.txt', encoding='gb18030',errors='ignore')