python学习第二天

一、python turtle库绘图

import turtle 引入turtle库
pensize() 画笔大小
color() 画笔颜色
penup() 抬起画笔,简写:pu()
pendown() 放下画笔,简写:pd()
goto() 将画笔移到指定坐标
left() 画笔左移动,简写:lt()
right() 画笔右移动,简写:rt()
circle() 画圆,第一个参数是半径(负数顺时针,整数逆时针),第二个是角度

import turtle as t
t.pensize(10)
t.color('blue')
#绘制N
t.pu()
t.goto(-280,0)
t.pd()
t.lt(90)
t.fd(80)
t.rt(145)
t.fd(100)
t.lt(145)
t.fd(80)
t.pu()
#绘制E
t.rt(90)
t.fd(20)
t.pd()
t.fd(50)
t.pu()
t.rt(180)
t.fd(50)
t.lt(90)
t.pd()
t.fd(80)
t.lt(90)
t.fd(50)
t.pu()
t.lt(180)
t.fd(50)
t.rt(90)
t.fd(40)
t.rt(90)
t.pd()
t.fd(50)
t.pu()
#绘制U
t.fd(20)
t.lt(90)
t.fd(40)
t.lt(180)
t.pd()
t.fd(60)
t.circle(25,180)
t.fd(60)
t.pu()

t.color('green')

#绘制S
t.goto(0, 60)
t.pd()
t.circle(22,270)
t.circle(-22,270)
t.pu()
#绘制O
t.goto(70,60)
t.pd()
t.circle(22,180)
t.fd(40)
t.circle(22,180)
t.fd(36)
t.pu()
#绘制F
t.goto(140,80)
t.lt(90)
t.pd()
t.fd(50)
t.lt(90)
t.fd(80)
t.goto(90,40)
t.lt(90)
t.fd(50)
t.pu()
#绘制T
t.goto(160,80)
t.pd()
t.fd(50)
t.rt(180)
t.fd(25)
t.lt(90)
t.fd(80)
t.done()

结果


python学习第二天_第1张图片
TIM截图20190729194804.png

二、python常用数据类型和语法

1.列表

定义

hero_name = ['鲁班七号', '安琪拉', '李白', '刘备']

常见操作
增:hero_name.append('后羿')
删:del hero_name[1]
查:print(hero_name[2])
改:hero_name[1] = 1000
排序
对数字排序
<列表名>.sort([reverse=True])


对字典型元组排序

stu_info = [
    {"name":'zhangsan', "age":18},
    {"name":'lisi', "age":30},
    {"name":'wangwu', "age":99},
    {"name":'tiaqi', "age":3},

]
print('排序前', stu_info)

# def 函数名(参数):
#     函数体
def sort_by_age(x):
    return x['age']

# key= 函数名    ---  按照什么进行排序
# 根据年龄大小进行正序排序
stu_info.sort(key=sort_by_age, reverse=True)
print('排序后', stu_info)

2.元组

定义

a = ('zhangsan', 'lisi', 'wangwu',1000)

访问

print(a[1])

修改

a[3] = 'zhaoliu'

关于元组需要注意的是 只有一个元素的元组
b = ('lisi') #不是元组
b = ('lisi',) #是元组
c = (1000) #不是元组
c = (1000,) #是元组


3.字典

定义

# info = {'name':'李四', 'age':34, 'addr':'重庆市渝北区'}

访问

print(info['name'])

修改/增加

info['addr'] = '北京市朝阳区'

方法

# 获取字典中所有的键
print(info.keys())

#  # 获取字典中所有的z值
print(info.values())

# 获取字典中所有的key-value
print(info.items())

4.集合

定义

set1 = {'zhangsan', 'lisi', 222}

遍历

for x in set1:
     print(x)

5.字符串

定义

name = 'abcdefg'
name ="abcdefg"
#跨行字符串
name ="""abc
         def
         g"""

常见操作
切片:对序列截取一部分的操作
eg.

name = 'abcdefg'
# [起始位置:终止位置:步长] 左闭右开,省略步长默认为1
print(name[1:4])
# 结果——bcd
print(name[0:7:2])
# 结果——a c e g
print(name[::2])
# 全切片的时候可以省略初始和终止位置,这里等同print(name[0:7:2])

常用方法
去空格

name = '    abcdefg     '
print(len(name))
# 查看序列内元素的个数  len(),
# 这里输出16
name = name.strip()
print('去空格之后', len(name))
# 这里输出7,已去掉了前4后5共9个空格

替换

price = '$999'
price = price.replace('$','')
print(price)

列表变成字符串的方法 join

li = ['a', 'b', 'c', 'd']
a = '_'.join(li)

三、本地文件读写

读取

#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)
text = """


    
    Title


重庆师范欢迎你

""" print(text) with open('chongqingshifan.html','w', encoding='utf-8') as f: f.write(text)

四、分词和词云

分词

# 导入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)

#
text = '小明硕士毕业于中国科学院计算所,后在日本京都大学深造'
seg_list4 = jieba.lcut(text,cut_all=True)
print(seg_list4)
#  搜索引擎模式  先执行精确模式,在对其中的长词进行处理
seg_list5 = jieba.lcut_for_search(text)
print(seg_list5)

结果:
['我', '来到', '北京', '清华大学']
['我', '来到', '北京', '清华', '清华大学', '华大', '大学']
['我', '来到', '北京', '清华', '华大', '大学', '清华大学']
['小', '明', '硕士', '毕业', '于', '中国', '中国科学院', '科学', '科学院', '学院', '计算', '计算所', '', '', '后', '在', '日本', '日本京都大学', '京都', '京都大学', '大学', '深造']
['小明', '硕士', '毕业', '于', '中国', '科学', '学院', '科学院', '中国科学院', '计算', '计算所', ',', '后', '在', '日本', '京都', '大学', '日本京都大学', '深造']

生成词云

import imageio
import jieba
from wordcloud import WordCloud
mask = imageio.imread('./china.jpg')
with open('./novel/threekingdom.txt','r', encoding='utf-8') as f:
    words = f.read()
    # print(len(words)) # 字数  55万
    words_list = jieba.lcut(words)
    # print(len(words_list)) # 分词后的词语数  35万
    #print(words_list)
    # 将words_list转化成字符串
    novel_words = " ".join(words_list)
    print(novel_words)
    # WordCloud()里面设置参数
    wc = WordCloud(
        font_path='msyh.ttc',
        background_color='white',
        width=800,
        height=600,
        mask=mask
    ).generate(novel_words)
    wc.to_file('三国词云.png')
python学习第二天_第2张图片
三国词云.png

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