绘制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')