一、turtle的簡單使用(Python標(biāo)準(zhǔn)庫中的GUI界面)
1、導(dǎo)入turtle庫
import turtle as t #as t為別名
2、對畫筆的操作
#設(shè)置畫筆大小 10px,顏色
t.pensize(10)
t.color('pink')
#抬筆(為了不留下移動(dòng)痕跡)
t.penup()
#水平左移goto(x,y)
t.goto(-260,0)
#放筆
t.pd()
#向前畫
t.forward(80)
#繪制圓圈(半徑,角度),角度默認(rèn)360
t.circle(40)
#簡寫
t.fd(100)
t.lt(145)
t.fd(80)
二、常用數(shù)據(jù)類型
1、列表
優(yōu)點(diǎn):靈活 ,缺點(diǎn): 效率低
#列表的聲明 列表名=[]
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('隨機(jī)打亂的列表', 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 函數(shù)名(參數(shù)):
# 函數(shù)體
def sort_by_age(x):
return x['age']
# 根據(jù)年齡大小進(jìn)行正序排序
stu_info.sort(key=sort_by_age, reverse=True)
print('排序后', stu_info)
#根據(jù)后面的數(shù)字排序
name_info_list = [
('張三',4500),
('李四',9900),
('王五',2000),
('趙六',5500),
]
def sort_by_value(x):
return x[1]
# 根據(jù)元組第二個(gè)元素進(jìn)行正序排序
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])
# 全切片的時(shí)候可以省略初始和終止位置
print(name[::2])
2.2、去兩端空格 strip()
name = ' abcdefg '
# 查看序列內(nèi)元素的個(gè)數(shù) 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、注意
# #關(guān)于元組需要注意的是 只有一個(gè)元素的元組
b = ('lisi',) #是元組
c = (1000,) #是元組
4、字典 dict
key-value數(shù)據(jù)結(jié)構(gòu)
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、 集合
無序,不重復(fù)
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()
# #需要關(guān)閉
# f.close()
# print(data)
#with as 上下文管理器 不需要關(guān)閉
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設(shè)置 project:項(xiàng)目名 中的project interpreter中搜索jieba點(diǎn)擊安裝
7.2、三種分詞模式
# 導(dǎo)入jieba分詞
import jieba
seg = "我想養(yǎng)只小貓咪"
# 精確模式 精確分詞
#輸出:['我想養(yǎng)', '只', '小貓咪']
seg_list = jieba.lcut(seg)
print(seg_list)
# 全模式 找出所有可能的分詞結(jié)果 冗余性大
#輸出:['我', '想', '養(yǎng)', '只', '小貓', '小貓咪', '貓咪']
seg_list1 = jieba.lcut(seg,cut_all=True)
print(seg_list1)
# 搜索引擎模式
#輸出:['我想養(yǎng)', '只', '小貓', '貓咪', '小貓咪']
seg_list2 = jieba.lcut_for_search(seg)
print(seg_list2)
8、繪制詞云
8.1、wordcloud庫
# 繪制詞云1——英文
#text是想變成詞云的內(nèi)容
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轉(zhuǎn)化成字符串
words = " ".join(sanguo_list)
print(words)
# WordCloud()里面設(shè)置參數(shù)
wc = WordCloud(
font_path='msyh.ttc',#字體
background_color='white',
width=800,
height=600,
mask=mask
).generate(words)
wc.to_file('三國詞云.png')