Python标准库中的GUI界面
导入turtle的语句
import turtle[图片上传失败...(image-af292c-1564406409341)]
t( as 是给turtle起一个别名,起了别名之后,后续的代码都不能再使用turtle调用函数)
下面是turtle的具体使用方法
1.设置画笔的大小为10px
t.pensize(10)
2.设置画笔的颜色为绿色
t.color('green')
3.笔触移动、抬笔和落笔
#抬笔
t.penup()
#水平及垂直方向移动,x为负数,表示向x轴负方向移动,y同理。
t.goto(x, y)
t.goto(-260, 0)
#落笔
t.pendown()
4.让GUI界面一直显示, 所有执行的代码要写在此函数之前
t.penup()
t.goto(-260, 0)
t.pd()
# 绘制 N
t.left(90)
t.forward(80)
t.right(145)
# 简写
t.fd(100)
t.lt(145)
t.fd(80)
t.right(90)
t.penup()
t.goto(-110, 80)
t.pd()
# 绘制 E
t.lt(180)
# 简写
t.fd(50)
t.lt(90)
t.fd(80)
t.lt(90)
t.fd(50)
t.penup()
t.goto(-120, 40)
t.pd()
t.lt(180)
t.fd(35)
#绘制U
t.penup()
t.goto(-80, 80)
t.pd()
t.lt(90)
t.fd(50)
t.circle(27, 180)
t.penup()
t.goto(-26, 80)
t.pd()
t.lt(180)
t.fd(50)
# 绘制 S
t.penup()
t.goto(15, 20)
t.pd()
t.circle(20, 270)
t.circle(-20, 270)
# 绘制 O
t.penup()
t.goto(90, 55)
t.pd()
t.fd(30)
t.circle(25, 180)
t.fd(30)
t.circle(25, 180)
# 绘制 F
t.penup()
t.goto(230, 80)
t.pd()
t.rt(90)
t.fd(50)
t.lt(90)
t.fd(80)
t.penup()
t.goto(180, 46)
t.pd()
t.lt(90)
t.fd(40)
# 绘制 T
t.penup()
t.goto(260, 80)
t.pd()
t.fd(50)
t.penup()
t.goto(285, 80)
t.pd()
t.rt(90)
t.fd(80)
# 让gui界面一直显示, 所有执行的代码要写在此函数之前
t.done()
二、python常用数据类型和语法
1.列表
定义
hero_name = ['鲁班七号', '安琪拉', '李白', '刘备']
常见操作
增:hero_name.append('后羿')
删:del hero_name[1]
查:print(hero_name[2])
改:hero_name[1] = 1000
排序
对数字排序
<列表名>.sort([reverse=True])
对字典型元组排序
stu_info = [
{"name":'zhangsan', "age":18},
{"name":'lisi', "age":30},
{"name":'wangwu', "age":99},
{"name":'tiaqi', "age":3},
]
print('排序前', stu_info)
# def 函数名(参数):
# 函数体
def sort_by_age(x):
return x['age']
# key= 函数名 --- 按照什么进行排序
# 根据年龄大小进行正序排序
stu_info.sort(key=sort_by_age, reverse=True)
print('排序后', stu_info)
2.元组
定义
a = ('zhangsan', 'lisi', 'wangwu',1000)
访问
print(a[1])
修改
a[3] = 'zhaoliu'
关于元组需要注意的是 只有一个元素的元组
b = ('lisi') #不是元组
b = ('lisi',) #是元组
c = (1000) #不是元组
c = (1000,) #是元组
3.字典
定义
# info = {'name':'李四', 'age':34, 'addr':'重庆市渝北区'}
访问
print(info['name'])
修改/增加
info['addr'] = '北京市朝阳区'
方法
# 获取字典中所有的键
print(info.keys())
# # 获取字典中所有的z值
print(info.values())
# 获取字典中所有的key-value
print(info.items())
集合
集合(set)是一个无序的不重复元素序列。
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
创建格式:
parame = {value01,value02,...}
或者
set = {'zhangsan', 'lisi', 222}
print(type(set1))
遍历集合
for x in set:
print(x)
列表的排序
li = []
for i in range(10):
li.append(i)
print(li)
from random import shuffle
shuffle(li)
print('随机打乱的列表', li)
li.sort(reverse=True)
print('排序后的列表', li)
本地文件读取
python中使用open内置函数进行文件读取
f = open(file='./novel/threekingdom.txt', mode='r', encoding='utf-8')
data = f.read()
f.close()
data = open(file='./novel/threekingdom.txt', mode='r', encoding='utf-8').read()
print(data)
with as 上下文管理器 不用手动关闭流
with open('./novel/threekingdom.txt', 'r', encoding='utf-8') as f:
data = f.read()
print(data)
写入
txt = 'i like python'
with open('python.txt','w', encoding='utf-8') as f:
f.write(txt)
中文分词 jieba
安装jieba分词库
指定国内镜像安装
1.在用户目录下新建pip文件夹
2.新建pip.ini文件
添加:
[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com
在命令行输入pip install jieba
导入jieba分词
import jieba
三种分词模式
seg = '我来到重庆,这里的夏天很热,我们都要准备好防晒伞'
#1.精确模式 精确分词
seg_list = jieba.lcut(seg)
print(seg_list)
#2.全模式
seg_list = jieba.lcut(seg, cut_all=True)
print(seg_list)
#全模式是找出所有可能分词的结果
#缺点:冗余性大
#3.搜索引擎模式
seg_list = jieba.lcut_for_search(seg)
print(seg_list)
#先执行精确模式,再对其中的长词进行处理
词云展示
pip install wordcloud
import jieba
import imageio
from wordcloud import WordCloud
import jieba
import imageio
mask = imageio.imread('./china.jpg')
with open('./novel/threekingdom.txt','r', encoding='utf-8') as f:
words = f.read()
# print(len(words)) # 字数 55万
words_list = jieba.lcut(words)
# print(len(words_list)) # 分词后的词语数 35万
print(words_list)
# 将words_list转化成字符串
novel_words = " ".join(words_list)
print(novel_words)
# WordCloud()里面设置参数
wc = WordCloud(
font_path='msyh.ttc',
background_color='white',
width=800,
height=600,
mask=mask
).generate(novel_words)
wc.to_file('三国词云.png')