Python学习第二天

绘制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张图片

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

你可能感兴趣的:(Python学习第二天)