学习Python的第二天

一、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')
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容