繪制Neusoft
import turtle as t
# 設置畫筆的大小 10px
t.pensize(10)
t.color('blue')
# 繪制 NEUSOFT
# 水平左移
# 抬筆
t.penup()
t.goto(-280, 0)
t.pd()
# 繪制 N
t.left(90)
t.forward(100)
t.right(145)
# 簡寫
t.fd(120)
t.lt(145)
t.fd(100)
# 繪制 e
t.penup()
t.goto(-180, 40)
t.pd()
t.right(90)
t.fd(70)
t.lt(90)
t.circle(40,320)
#繪制u
t.pu()
t.goto(-80,80)
t.pd()
t.right(140)
t.fd(50)
t.circle(30,180)
t.fd(50)
t.pu()
t.lt(180)
t.goto(-20,30)
t.pd()
t.circle(30,60)
#繪制s
t.pu()
t.goto(60,60)
t.pd()
t.lt(120)
t.circle(22,270)
t.circle(-22,270)
#繪制o
t.pu()
t.goto(160,40)
t.pd()
t.circle(36)
#繪制f
t.pu()
t.goto(180,80)
t.pd()
t.rt(90)
t.fd(40)
t.pu()
t.lt(90)
t.goto(230,100)
t.pd()
t.circle(15,180)
t.fd(120)
t.circle(-15,180)
#繪制t
t.pu()
t.goto(260,80)
t.pd()
t.rt(90)
t.fd(40)
t.pu()
t.goto(280,110)
t.pd()
t.rt(90)
t.fd(100)
t.circle(20,140)
t.circle(20,140)
python常用數據類型
1.列表
列表的常見操作:
-列表的訪問
列表名[索引]
print(hero_name[2])
-添加 append
hero_name.append('后羿')
print('添加后的列表', hero_name)
-修改
hero_name[1] = 1000
print('修改后的列表',hero_name)
-刪除
del hero_name[1]
print('刪除后的列表',hero_name)
-遍歷hero_name
hero_name = ['魯班七號', '安琪拉', '李白', '劉備']
for hero in hero_name:
print(hero)
-列表的排序
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)
練習
1.使用for 循環, 在循環中添加元素值
for i in range(1, 11):
li.append(i)
print(li)
2.根據年齡對列表排序
提示:
def 函數名(參數):
函數體
stu_info = [
{"name":'zhangsan', "age":18},
{"name":'lisi', "age":30},
{"name":'wangwu', "age":99},
{"name":'tiaqi', "age":3},
]
print('排序前', stu_info)
def sort_by_age(x):
return x['age']
stu_info.sort(key=sort_by_age, reverse=True)
print('排序后', stu_info)
3.根據薪資對列表排序
name_info_list = [
('張三',4500),
('李四',9900),
('王五',2000),
('趙六',5500),
]
def sort_by_grade(i):
return i[1]
name_info_list.sort(key=sort_by_grade)
print(name_info_list)
2.字符串
-切片:對序列截取一部分的操作,適用于列表,遵循“[起始位置:終止位置:步長] ,左閉右開”的規則。
eg:
1.在name = 'abcdefg'中切取aceg
name = 'abcdefg'
print(name[0:7:2])
注:全切片的時候可以省略初始和終止位置 ,直接寫print(name[::2])
-去name = ' abcdefg '兩端空格用.strip()
name = name.strip()
print('去空格之后', len(name))
-查看name = ' abcdefg '序列內元素的個數用.len()
name = ' abcdefg '
print(len(name))
-替換字符
price = '$999'
price = price.replace('$','')
print(price)
注:列表變成字符串的方法 .join()
li = ['a', 'b', 'c', 'd']
a = '_'.join(li)
print(a)
print(type(a))
3.元組(元組和列表很像只不過元組不可以修改)
a = ('zhangsan', 'lisi', 'wangwu',1000)
print(a)
print(type(a))
-元組的 訪問
print(a[1])
-元組的修改
a[3] = 'zhaoliu'
4.字典
-定義形式 {}
eg:輸出info的長度
info = {'name':'李四', 'age':34, 'addr':'重慶市渝北區'}
print(len(info))
print(info)
-字典的訪問
print(info['name'])
-字典的修改
info['addr'] = '北京市朝陽區'
print('修改后字典',info)
-字典的增加
info['sex'] = 'female'
print('增加后字典',info)
-獲取字典中所有的鍵
print(info.keys())
-獲取字典中所有的z值
print(info.values())
-獲取字典中所有的key-value
print(info.items())
d = [('name', '李四'), ('age', 34), ('addr', '北京市朝陽區'), ('sex', 'female')]
d1 = dict(d)
print(d1)
-遍歷字典
for k, v in info.items():
print(k, v)
5.集合
set1 = {'zhangsan', 'lisi', 222}
print(type(set1))
-集合遍歷
for x in set1:
print(x)
本地文件的操作
本地文件讀取(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
"""
導入jieba分詞
import jieba
三種分詞模式
seg = "我來到北京清華大學"
1.精確模式 精確分詞
seg_list = jieba.lcut(seg)
print(seg_list)
2.全模式 找出所有可能的分詞結果 冗余性大
seg_list1 = jieba.lcut(seg,cut_all=True)
print(seg_list1)
3.搜索引擎模式
seg_list2 = jieba.lcut_for_search(seg)
print(seg_list2)
text = '小明碩士畢業于中國科學院計算所,后在日本京都大學深造'
seg_list4 = jieba.lcut(text,cut_all=True)
print(seg_list4)
注:搜索引擎模式 要先執行精確模式,再對其中的長詞進行處理
seg_list5 = jieba.lcut_for_search(text)
print(seg_list5)
詞云的展示
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()
words_list = jieba.lcut(words)
print(words_list)
novel_words = " ".join(words_list)
print(novel_words)
wc = WordCloud(
font_path='msyh.ttc',
background_color='white',
width=800,
height=600,
mask=mask
).generate(novel_words)
wc.to_file('三國詞云.png')