一、turtle的简单使用(Python标准库中的GUI界面)
1、导入turtle库
import turtle as t #as t为别名
2、对画笔的操作
设置画笔大小 10px,颜色
t.pensize(10)
t.color('pink')
抬笔(为了不留下移动痕迹)
t.penup()
水平左移goto(x,y)
t.goto(-260,0)
放笔
t.pd()
向前画
t.forward(80)
绘制圆圈(半径,角度),角度默认360
t.circle(40)
简写
t.fd(100)
t.lt(145)
t.fd(80)
二、常用数据类型
1、列表
优点:灵活 ,缺点: 效率低
列表的声明 列表名=[]
number=['yi','er','san','si']
遍历列表
for num in number:
print(num)
列表的访问 列表名[索引]
print(number[2])
添加元素 append
number.append('wu')
print('添加后的列表',number)
修改列表
number[1]='liu'
print('修改后的列表',number)
删除元素
del number[1]
print('删除后的列表',number)
1.2、列表的排序
from random import shuffle
li = []
for i in range(10):
li.append(i)
print(li)
打乱列表
shuffle(li)
print('随机打乱的列表', li)
排序(reverse=True反向排序)
li.sort(reverse=True)
print('排序后的列表', li)
stu_info = [
{"name":'zs', "age":18},
{"name":'ls', "age":32},
{"name":'ww', "age":9},
{"name":'ti', "age":3},
]
print('排序前', stu_info)
def 函数名(参数):
函数体
def sort_by_age(x):
return x['age']
根据年龄大小进行正序排序
stu_info.sort(key=sort_by_age, reverse=True)
print('排序后', stu_info)
根据后面的数字排序
name_info_list = [
('张三',4500),
('李四',9900),
('王五',2000),
('赵六',5500),
]
def sort_by_value(x):
return x[1]
根据元组第二个元素进行正序排序
name_info_list.sort(key=sort_by_value)
print('排序后', name_info_list)
2、字符串
定义形式 '' ""
2.1、 切片 对序列截取一部分的操作,适用于列表
name = 'abcdefg'
[起始位置:终止位置:步长] 左闭右开
cd
print(name[2:4])
a c e g
print(name[0:7:2])
全切片的时候可以省略初始和终止位置
print(name[::2])
2.2、去两端空格 strip()
name = ' abcdefg '
查看序列内元素的个数 len()
print(len(name))
name = name.strip()
print('去空格之后', len(name))
2.3、替换 replace
price = '999'
price = price.replace('9','1')
print(price)
2.4、列表变成字符串的方法 join
输出a_b_c_d
li = ['a', 'b', 'c', 'd']
a = '_'.join(li)
print(a)
print(type(a))
3、元组
元组 tuple 元组和列表很像只不过元组不可以修改
3.1、定义 ()
a = ('zs', 'ls', 'ww',1000)
print(a)
print(type(a))
3.2、访问
访问
print(a[1])
3.3、修改
a[3] = 'zl'
3.4、注意
#关于元组需要注意的是 只有一个元素的元组
b = ('lisi',) #是元组
c = (1000,) #是元组
4、字典 dict
key-value数据结构
4.1、定义形式 {}
info = {'name':'李四', 'age':34, 'addr':'重庆'}
print(len(info))
print(info)
4.2、字典的访问
print(info['name'])
4.3、修改
info['addr'] = '北京'
print('修改后字典',info)
4.4、增加
info['sex'] = 'female'
print('增加后字典',info)
4.5、获取字典中所有的键
print(info.keys())
4.6、 获取字典中所有的z值
print(info.values())
4.7、获取字典中所有的key-value
print(info.items())
4.8、 遍历字典
for k, v in info.items():
print(k, v)
5、 集合
无序,不重复
set1 = {'zs', 'ls', 222}
5.1、 遍历
for x in set1:
print(x)
6、本地文件的读写
6.1、读取本地文件
java读取本地文件
f=open(file='./threekingdom.txt',mode='r',encoding='utf-8')
data=f.read()
#需要关闭
f.close()
print(data)
with as 上下文管理器 不需要关闭
with open('./threekingdom.txt','r',encoding='utf-8') as w:
data=w.read()
print(data)
6.2写入
txt = 'python'
with open('python.txt','w', encoding='utf-8') as f:
f.write(txt)
7、jieba分词库
7.1、安装
pycharm设置 project:项目名 中的project interpreter中搜索jieba点击安装
7.2、三种分词模式
导入jieba分词
import jieba
seg = "我想养只小猫咪"
精确模式 精确分词
输出:['我想养', '只', '小猫咪']
seg_list = jieba.lcut(seg)
print(seg_list)
全模式 找出所有可能的分词结果 冗余性大
输出:['我', '想', '养', '只', '小猫', '小猫咪', '猫咪']
seg_list1 = jieba.lcut(seg,cut_all=True)
print(seg_list1)
搜索引擎模式
输出:['我想养', '只', '小猫', '猫咪', '小猫咪']
seg_list2 = jieba.lcut_for_search(seg)
print(seg_list2)
8、绘制词云
8.1、wordcloud库
绘制词云1——英文
text是想变成词云的内容
from wordcloud import WordCloud
text = 'xxx'
wc = WordCloud().generate(text)
wc.to_file('name.png')
8.2、制定图片形状的词云还需用到imageio库(中文词云)
from wordcloud import WordCloud
import jieba
import imageio
指定图片
mask = imageio.imread('./china.jpg')
with open('./threekingdom.txt','r', encoding='utf-8') as f:
sanguo = f.read()
# 先分词
sanguo_list = jieba.lcut(sanguo)
print(sanguo_list)
# 将words_list转化成字符串
words = " ".join(sanguo_list)
print(words)
# WordCloud()里面设置参数
wc = WordCloud(
font_path='msyh.ttc',#字体
background_color='white',
width=800,
height=600,
mask=mask
).generate(words)
wc.to_file('三国词云.png')