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

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