目录
一、学习Python的感想
在网上看到有许多人说自学Python几个月就能够做出非常厉害的功能,看到这些文章我开始怀疑自己,学的四个月Python咋就是不知道该怎么往实际运用呢。
直到最近寒假我才发现这当中的问题,原先的学习都是以书中内容为主,代码看的少,而知识看的多,这就导致学习者发挥自己的能力敲代码时陷入的代码荒(不知道怎么敲下去)。
也许有一部分学习Python的同学有大量的敲代码,也同样会与我一样自己动手写一款程序时写出不出来来。
我深深地记得上学期教我们的Python老师在准备期末考时对我们说:这次期末考先不让你们做一个管理系统了,不然全班只有个位数的同学会过。
互联网的趋势,让许多人往这一业内发展,这也是我写的第一篇有关代码的文章,也相信有许多同学在学习Python或其他编程软件的时候,都会陷入不知如何去敲的难题,唯一的解决办法就是:多看代码、多看书、多敲、多构思!
如果有题练当然更好的!
效果图
先展示下吧(还有些瑕疵),写文章激励激励自己,也激励正在学习Python的你!
二、代码
1、用到的库
wordcloud、jieba、time
2、代码分析
首先当然是要导入需要用到的库
import wordcloud
import jieba
import time
关于wordcloud和jieba这两个第三方库,可以使用PyCharm的file设置中点击安装,或到系统中的cmd使用:
pip install worlcloud
pip install jieba
接下来就是设置参数,直接上代码:
# 分词库
import wordcloud
import jieba
import time
class ocr:
def __init__(self) -> str: # 初始化程序
time.sleep(2)
print("欢迎使用分词系统")
time.sleep(0.5)
print("等待程序初始化,大约需要1-3秒钟")
time.sleep(2)
def File(self, user: str) -> str: # 识别文件名称,并处理数据
if user[0] == "" or user[0] == " ":
print("输入错误!")
elif user[-4:] == '.txt':
file = open(user, 'r', encoding="UTF-8")
self.f = file.read()
file.close()
if user[-3:] != 'txt':
print("格式错误!")
else:
lcut = jieba.lcut(user)
self.f = " ".join(lcut)
def show(self): # 读取文本/文件并输出云图
ls = jieba.lcut(self.f)
lst = []
for i in ls:
if len(i) >= 2:
lst.append(i)
aaa = str(lst)
word = wordcloud.WordCloud(
font_path="msyh.ttc",\
width=1000, height=800,\
background_color="white",\
)
word.generate(aaa)
picture_name = str(input("请输入图片名称:"))
word.to_file("{}.png".format(picture_name))
if __name__ == "__main__":
op = ocr()
user = input("请输入文本/文件名:\n")
op.File(user)
op.show()
这里我是类来设计初始化程序,返回的是一个字符串类型。
加入time库是为了使用的感官,不会程序一运行系统马上显示出和用户输入的信息,更便于大脑的反应。
def __init__(self) -> str: # 初始化程序
time.sleep(2)
print("欢迎使用分词系统")
time.sleep(0.5)
print("等待程序初始化,大约需要1-3秒钟")
time.sleep(2)
第二步便开始判断用户输入的是文字,还是文本文件(.txt),如果输入的第一个字符是空或空格,则提示输入错误。
如果不是空字符或空格,继续判断输入的是文字还是文本文件“.txt” ,若是文字或文本文件“.txt”均使用分词获取两个或两个以上的汉字。
def File(self, user: str) -> str: # 识别文件名称,并处理数据
if user[0] == "" or user[0] == " ":
print("输入错误!")
elif user[-4:] == '.txt':
file = open(user, 'r', encoding="UTF-8")
self.f = file.read()
file.close()
if user[-3:] != 'txt':
print("格式错误!")
else:
lcut = jieba.lcut(user)
self.f = " ".join(lcut)
不知道其他友友们使用jieba库分词是什么样子,我电脑中都会分到一个汉字,看起来怪怪的,抓不到重点,所以就采用直接抛弃两个汉字以下的内容。
第三步则将其输出称图片的格式,当然这个输出的图片是方方正正的,若要使用图案,可以使用imread()加载你要使用的图案图片。
def show(self): # 读取文本/文件并输出云图
ls = jieba.lcut(self.f)
lst = []
for i in ls:
if len(i) >= 2:
lst.append(i)
aaa = str(lst)
word = wordcloud.WordCloud(
font_path="msyh.ttc",\
width=1000, height=800,\
background_color="white",\
)
word.generate(aaa)
picture_name = str(input("请输入图片名称:"))
word.to_file("{}.png".format(picture_name))
对代码有问题,可以私信!
我是编程小白,还请大神指教!