- 1. 基本输入输出函数
- print
- input
- eval
- 2. 变量及保留字
- 变量命名规则
- 3. 数据类型
- 4.字符串类型
- 5.表达式赋值语句及注释
- 6.浮点数及复数
- 浮点数
- pow()
- round
- 复数
- 7.数字运算
- 8.内置函数
- 9.字符串类型
- 10. 字符串切片
- 11.字符串处理方法
- 12.字符串格式化
- 13. 字符串类型的操作
- 14.if语句
- 15. for循环
- 16.无限循环
- 17.异常处理
- 18.函数的基本使用
- 19.组合数据
- 20.文件的使用
- 21.文件的读写
- 22.数据的维度
- 23.csv文件
- 24. 二维数据的存储
- 25.面向对象(C++,Java,Python)
- 26.导入类[4种方法]
- 库
- 27. **time库**【时间处理、时间格式化、计时】
- 28.random库随机数据
- 29.turtle库
- 30.第三方库
- 31.第三方库的下载安装
- 32.中文分词
- 33.词云wordcloud库
- 34.PyQt5
- 35.PyInstaller库
print("HHH")
print('HHHH')
a=123
print(a)
b=456
print(a,b)
print('a的值为{},b的值为{}'.format(a,b))
# 换行
c=3
d=4
print(c)
print(d)
#不换行
c=3
d=4
print(c,end='')
print(d,end='')
print(c)
c=3
d=4
print(c,end='#')
print(d,end='$')
input
a=input('请输入一行内容')
print(a)
b=input('')
print(b)
【input 默认保存为是字符串类型】
a=input('请输入字符')
b=type(a)
print(b)
eval
变量=eval(字符串)
#a=eval('1+2')等效于a=1+2
a=eval('1+2')
print(a)
eval()函数经常和input函数一起使用,用来获取用户输入的数字
变量=eval(input(‘提示性文字’))
b=eval(input('请输入数字'))
print(b)
2. 变量及保留字
变量命名规则
允许 采用大写字母、小写字母、数字、下划线和汉字等字符及其组合给变量命名
不允许 名字首字符不能是数字,中间不能有空格,标识符【对大小写敏感】名称不能与Python保留字相同
整数
#十进制 print(180) #二进制0b/0B开头 print(0b11) #八进制0o/0O开头 print(0O11) #十六进制0x/0X开头 print(0xb4)
浮点数
print(12.3e2) print(123.4e-2) print(123.4e+2)4.字符串类型
print('司六米希')
print("hhh")
#获取1-2【不包含2】的子串
print('司六米希'[1:2])
#获取长度1
print(len('hhhhhh'))
#获取长度2
a=len('hhhhhh')
print(a)
5.表达式赋值语句及注释
存在同步赋值
赋值语句
a=102*2 print(a) b='司六'+'米希' print(b) #同步赋值 c,d=5,6 c,d=d,c print(c,d)
注释采用#
6.浮点数及复数 浮点数浮点数必须带有小数部分
pow()pow(x,y)=x的y次方
roundround(x,d) 对x进行四舍五入,其中参数d指定保留的小数位数
复数注意: 复数类型中实部和虚部都是浮点类型,对于复数z,可以用z.real获得实数部分,z.imag获得虚数部分
7.数字运算9个
注意:
- 整数和浮点数混合运算结果是浮点数
- 整数之间运算,产生结果类型与操作符相关,/运算的结果是浮点数
- 整数或浮点数与复数运算,结果是复数
查询所有内置函数----print(dir(__builtins__)) print(help(内置函数))----查询具体函数功能 print(dir(变量))获取变量的方法 abs(x)#x的绝对值 divmod(x,y)#(x//y,x%y),输出为二元组形式 pow(x,y,z)#(x**y)%z round(x,ndigits)#对x四舍五入,保留ndigits位小数,round(x)返回四舍五入的整数值 max(q,w,e,r....)获取最大值 min(Q,W,W,E...)获取最小值9.字符串类型
单行字符串和多行字符串
#单行字符串
print('hhh')
print("hhh")
#多行字符串
print('''hhhh
kkk
lll''')
print("""hhh
kkk
lll""")
反斜杠可以实现续行
10. 字符串切片print('123456789'[x:y:z])
x起始,y结束,z步长
11.字符串处理方法
12.字符串格式化
模板字符串.format(逗号分隔的参数)
13. 字符串类型的操作print('hhh'+'JJJ')
print('hh'*3)
print('sl'in 'slmx')#sl是slmx的字串,返回true
14.if语句
if 条件 :
满足条件输出的结果
注意:python中任何非零的数值、非空的数据类型都等价于True,0等价于False,可以直接用作判断条件
循环结构分为遍历循环和无限循环
遍历结构可以是字符串、文件、range()函数或组合数据类型
- 遍历循环(for)
for c in "1234":
print(c)
- range(start,stop,step)
for c in range(10):
print(c)
- 跳出循环break/continue
for c in "1234":
if c=='3':
break
print(c)
- 遍历循环的扩展模式
当for循环正常执行之后,程序会继续执行else语句中的内容。else语句只在循环正常执行之后才执行并结束,因此,可以在语句块2中放置判断循环执行情况的语句
for 循环变量 in 遍历结构
语句块1 else:
语句块2
for c in "1234":
if c=='3':
continue
print(c)
else:
print('over')
16.无限循环
while 条件:
语句块
当程序执行到while语句时,判断条件如果为True,执行语句块,语句结束后返回再次判断while语句的条件;当条件为False时,循环终止。继续后续语句。
n=0
while n<10:
print(n)
n=n+3
print('程序结束')
- 无限循环的扩展模式
当while循环正常执行之后,程序会继续执行else语句的内容。else语句只在循环正常执行后才执行,因此,可以在语句块2中放置判断循环执行情况的语句
while 条件:
语句块1
else:
语句块2
17.异常处理
try:
语句块1
except:
语句块2
while True:
try:
n=eval(input('请输入数字'))
break
except:
print('错误')
print('输入了',n)
18.函数的基本使用
- 函数的定义
def 函数名(参数列表): 函数体 return 返回值列表
- 函数的参数传递❤
函数的参数在定义时可以指定默认值,当函数被调用时,如果没有传入对应的参数值,则使用函数定义时的默认值替代
def 函数名(非可选参数列表,可选参数=默认值): 函数体 return 返回值列表
可选参数一般都放置在非可选参数的后面,即定义函数时,先给出所有非可选参数,然后再分别列出每个可选参数及对应的默认值
def heart(a,b):
print('n'.join([''.join([(a[(y-x)%len(a)]
if((x*0.04)**2+(y*0.1)**2-1)**3-(x*0.04)**b*(y*0.1)**3
<= 0 else '') for x in range(-30,30)])
for y in range(30,-12,-1)]))
heart('小司六',2)
- return语句
return语句可以出现在函数中的任何部分,同时可以将0个、1个或多个函数运算的结果返回给函数被调用处的变量
def hh(a,b):
return a-b,a+b
k,l=hh(4,2)
print(k,l)
- 变量的作用域
全局变量是指在函数之外定义的变量,在执行程序全过程有效。全局变量在函数内部使用时,需要提前使用保存字global声明
n=2
def hh(x=2):
global n
return x*n
s=hh(3)
print(s)
19.组合数据
- 集合类型【元素间无序且相同元素唯一存在】
# 集合类型有4种操作符
s={1,2,3,4}
a={2,5}
# 差集
print(s-a)
# 交集
print(s&a)
# 补集
print(s^a)
#并集
print(s|a)
利用s.查询可用方法
- 序列类型【元素之间有先后关系,通过序号访问,元素之间不排他,典型代表:字符串、列表、元组】
1.列表类型,用[]表示【列表没有长度限制,元素类型可以不同,允许相同元素的存在】
可通过list(x)函数将集合或字符串类型转换成列表类型
print(list('列表可以生成字符串'))
列表的索引,用于获取列表的一个元素。使用中括号作为索引操作符。可以使用遍历循环对列表类型的元素进行遍历操作,基本使用方式如下:
for 循环变量 in 列表变量:
语句块
s=[10,'2030',3]
for i in s:
print(i*2)
2.元组tuple【与列表类似,但是元组的元素不能修改,元组使用小括号()】
- 映射类型【是‘键-值’数据项的组合,每个元素是一个键值对,表示为(key,value),映射类型的典型代表是字典(dict)】
字典【使用大括号{}建立,每个元素是键值对】
字典通过键进行索引
d={'1':"a",'2':"b"}
print(d)
d['1']="c"
print(d)
#空字典
t={}
t['司六']="6"
t['米希']="7"
print(t)
字典的遍历循环【for循环返回的变量名是字典的索引值【键】,如果需要获得键的对应的值,可以在语句块中通过get()方法获得】
for 变量名 in 字典名
语句块
d={'1':"a",'2':"b"}
for i in d:
print(i)
20.文件的使用
文件两种类型
- 文本文件:由单一特定编码的字符组成 eg:txt文件
- 二进制文件:二进制文件直接由比特0和比特1组成,文件内部数据的组织格式与文件用途有关 eg:视频、图片
Python对文本文件和二进制文件都有同一的操作步骤,即"打开-操作-关闭"
文件使用结束后要用close()方法关闭,释放文件的使用授权【变量名.close()】
f=open("F:\text.txt",'r')
print(f.readline())
f.close()
读取中文乱码解决方法
with open('F:\hh.txt',mode='r',encoding='utf-8') as file:
str=file.readlines()
print(str)
打开模式
【r,w,x,a,b,+】
f.read(size=-1)
f.readline()
f.readlines()
f.seek(offset)改变当前文件操作指针的位置,offset的值【0:文件开头,2:文件结尾】
注意:文件打开后,对文件的读写有一个读取指针,当从文件中读入内容后,读取指针将向前进,再次读取的内容将从指针的新位置开始。
一维数据、二维数据、三维数据
23.csv文件一维数据保存为csv格式后,各元素采用逗号分隔,形成一行,这里的逗号是英文逗号。
- 数据写为csv文件
siliu=['司','六','米','希']
f=open("F:\hh.csv",'w')
f.write(",".join(siliu)+"n")
f.close()
- csv文件还原为数据
f=open("F:\hh.csv",'r')
siliu=f.read().strip("n").split(",")
f.close()
print(siliu)
strip() 方法用于移除字符串头尾指定的字符(默认为空格)
f=open("F:\hh.csv",'r')
siliu=f.read().split(",")
f.close()
print(siliu)
split()方法通过指定分隔符对字符串进行切片
f=open("F:\hh.csv",'r')
siliu=f.read()
f.close()
print(siliu)
24. 二维数据的存储
si=[['你好','2019','2020','2021'],['加油','2022','2023','2024']]
f=open("F:\ll.csv",'w')
for row in si:
f.write(",".join(row)+ 'n')
f.close()
f=open("F:\ll.csv",'r')
siliu=[]
for line in f:
a=line.strip('n')
print(a)
b=a.split(',')
print(b)
siliu.append(b)
f.close()
print(siliu)
25.面向对象(C++,Java,Python)
- 类的使用
class 类的名称() “”“类的说明文档”“” def __init__(self,.....): pass
- 修改类的属性
给属性指定默认值 self.属性名=默认值 修改属性的值 对象的名称.属性名=修改值
- 继承
注意子类必须写在父类后面
class 子类名(父类名) “”“类的说明文档”“” def __init__(self,.....): super().__init__()【将父类和子类进行关联】26.导入类[4种方法]
Python可以将类存储在模块中,然后在主程序中导入所需要的模块
- 导入单个类
from 模块名 import 类名 打开指定模块名文件并导入类在本文件中 在一个模块中可以同时存储多个类
- 从一个模块中导入多个类
from 模块名 import 类名1,类名2
- 导入整个模块
import 模块名 导入整个模块,在使用过程中需要以句点的形式访问模块中的类 eg:模块a中有类A1,A2,A3,而在主程序中使用类时为: a.A1 a.A2 a.A3
- 导入模块中的所有类
from 模块名 import*库
标准库+第三方库
- 标准库【time库–获取时间、random库–随机数、turtle库–图形绘制库】【查询库使用 help(‘modules’)】
- 时间处理
# 获取时间戳【用来记录性能时间差】 time.time() # 获取世界同一时间 time.gmtime() # 获取本地时间 time.localtime() # 易读的字符串表示,本地时间 time.ctime()
- 时间格式化
time.mktime() # 时间格式化最有效的方法,几乎可以以任何通用格式输出时间。该方法利用一个格式字符串,对时间格式进行表达 time.strftime() # 与strftime()方法完全相反,用于提取字符串中时间来生成strut_time对象,可以很灵活的作为time模块的输入接口 time.strptime()
- 计时
# 推迟调用线程的运行,可通过参数secs指秒数,表示进程挂起(睡眠)的时间 time.sleep() time.monotonic() # 返回一个性能计数器的值(在分秒内),即一个具有最高可用分辨率的时钟,以测量短时间,它包括了在 time.perf_counter()28.random库随机数据
- random()生成一个[0.0,1.0)之间的随机小数
- seed()初始化随机数种子,默认值为当前系统时间,【当seed()给固定参数时有固定随机值】
import random random.seed(1) a=random.random() print(a)
- choice(seq)从序列类型(例如:列表)中随机返回一个元素
import random
a=['司','六']
print('谁最棒'+random.choice(a))
- shuffle(seq)将序列类型中元素随机排序,返回打乱后的序列
a=['剪子','石头','布'] random.shuffle(a) print(a)
- sample(pop,k)从pop类型中随机选取k个元素,以列表类型返回
a=['剪子','石头','布'] print(random.sample(a,2))29.turtle库
turtle库主要包含三个类:窗体函数、画笔状态函数、画笔运动函数
- 窗体函数【设置主窗体的大小和位置】
turtle.setup(width,height,startx,starty)
需要与turtle.done()进行配合 - 画笔运动函数
forward()沿着当前方向前进指定距离 fd缩写也可以
backward()沿着当前相反方向后退指定距离 bk缩写
right(angle)向右旋转angle角度【与之前角度有关】
setheading(angle)设置朝向为angle角度【基准是直角坐标系】 seth缩写
goto(x,y)移动到绝对坐标值
circle(radius,e)绘制一个指定半径r和角度e的圆或弧形
undo()撤销画笔最后一步动作
speed()设置画笔的绘制的速度,参数为0-10之间 - 画笔状态函数
penup()提起画笔
pendown()放下画笔,与penup()配对使用
pensize(width)设置画笔线条的粗细为指定大小
color()设置画笔颜色
begin_fill()填充图形前,调用该方法,与end_fill搭配使用
filling()返回填充的状态,true为填充
clear()清空当前窗口,但不改变当前画笔的位置
reset()清空当前窗口,并且重置位置等状态为默认值
screensize()设置画布的长和宽
hideturtle()隐藏画笔的turtle形状
showturtle()显示画笔的形状
isvisible()如果turtle可见,则返回true
【十几万个第三方库】
网络爬虫
- requests
- scrapy
用户图形界面
- PyQt5
- wxPython
- PyGTX
机器学习
- scikit-learn(sklearn)
- TensorFlow
- Theano
Web开发
- Django
- Pyramid
- Flask
游戏开发
- Pygame
- Panda3D
- cocos2d
第三方库安装的方法
- 安装包管理工具:easy_install、pip【√】
- 源文件安装
- Pycharm安装第三方库
pip是一个现代的、通用的Python包管理工具。提供了对Python包的查找、下载、安装、卸载的功能
- 安装一个库的命令格式
pip install <拟安装库名> - 列出当前系统已经安装第三方库的命令格式
pip list - 卸载一个已经安装第三方库的命令格式
pip uninstall<拟卸载库名> - 列出某个已经安装库详细信息的命令格式
pip show <拟查询库名>
第三方库下载地址更改
采用镜像
- 注意可创建新环境优点
Python项目可用独立部署
防止一台服务器部署多个项目之间存在类库的版本依赖问题发生
充分发挥项目的灵活性
使用jieba库
import jieba
print(jieba.lcut("司六是一个很棒的小朋友"))
33.词云wordcloud库
- 什么是词云?
以词语为基本单元,根据其在文本中出现的频率设计不同大小以形成视觉上不同效果,形成"关键词云层"或"关键词渲染",从而使读者只要"一瞥"即可领略文本的主旨。 - 词云的原理
在生成词云时,wordcloud默认会以空格或标点为分隔符对目标文本进行分词处理。对于中文文本,分词处理需要由用户来完成。一般步骤是先将文本分词处理,然后以空格拼接,再调用wordcloud库函数 - 核心函数
wordcloud库的核心是WordCloud类,所有的功能都封装在WordCloud类中。使用时需要实例化一个WordCloud类的对象,并调用其generate(text)方法将text文本转化为词云。
import wordcloud
txt='I am a nice baby. baby? Yep, I am'
si=wordcloud.WordCloud().generate(txt)
si.to_file('test.png')
import wordcloud
import jieba
txt='司六米希好好学习天天向上白白胖胖长高高'
words=jieba.lcut(txt)
newtxt=' '.join(words)
wd=wordcloud.WordCloud(font_path="msyh.ttc",width=500,height=300).generate(newtxt)
wd.to_file('词云.png')
注意: scipy库中的imread要被弃用,需要改成这样from imageio import imread
import wordcloud
# from scipy.misc import imread
from imageio import imread
mask=imread('heart.jpg')
with open('词云填充内容.txt','r', encoding='utf-8', errors='ignore') as file:
text=file.read()
wd=wordcloud.WordCloud(font_path="msyh.ttc",background_color="pink",width=500,height=300,mask=mask).generate(text)
wd.to_file('词云2.png')
注意:词云一定要font_path="msyh.ttc"设置字体,否则会发现无法显现,并且这并不是编码问题
PyQt5是一个用于创建GUI【用户图形界面】应用程序的跨平台的工具包
35.PyInstaller库pyinstaller 能够在Windows、Linux、Mac OS X等操作系统下将Python源文件打包,变成直接可运行的可执行文件
pyinstaller 优点:通过对源文件打包,Python程序可以在没有安装Python的环境中运行,也可以作为一个独立文件方便传递和管理
- 打包方法
pyinstaller
执行完毕后,源文件所在目录将生成dist和build两个文件夹。最终的打包程序在dist内部与源文件同名的目录中
pyinstaller -F
可以通过-F参数对Python源文件生成一个独立的可执行文件
pyinstaller -F-i <图标名.ico>
指定打包程序使用的图标(icon)文件
图片转换为ico格式: 转换



