Python 10 行以内代码能有什么高端操作?| 原力计划

百家 作者:CSDN 2020-04-12 17:20:02

作者 |?ZackSock

来源 | CSDN博客

Python凭借其简洁的代码,赢得了许多开发者的喜爱。因此也就促使了更多开发者用Python开发新的模块,从而形成良性循环,Python可以凭借更加简短的代码实现许多有趣的操作。下面我们来看看,我们用不超过10行代码能实现些什么有趣的功能。


生成二维码


二维码作为一种信息传递的工具,在当今社会发挥了重要作用。而生成一个二维码也非常简单,在Python中我们可以通过MyQR模块了生成二维码,而生成一个二维码我们只需要2行代码,我们先安装MyQR模块,这里选用国内的源下载:

pip?install?-i?https://pypi.tuna.tsinghua.edu.cn/simple/?myqr
安装完成后我们就可以开始写代码了:
from?MyQR?import?myqr????#?注意大小写
myqr.run(words='http://www.baidu.com')????#?如果为网站则会自动跳转,文本直接显示,不支持中文
我们执行代码后会在项目下生成一张二维码。当然我们还可以丰富二维码:
from?MyQR?import?myqr
myqr.run(
????words='http://www.baidu.com',????#?包含信息
????picture='lbxx.jpg',????????????#?背景图片
????colorized=True,????????????#?是否有颜色,如果为False则为黑白
????save_name='code.png'????#?输出文件名
)
效果图如下:
另外MyQR还支持动态图片。


生成词云


词云是数据可视化的一种非常优美的方式,我们通过词云可以很直观的看出一些词语出现的频率高低。使用Python我们可以通过wordcloud模块生成词云,我们先安装wordcloud模块:

pip?install?-i?https://pypi.tuna.tsinghua.edu.cn/simple/?wordcloud
然后我们就可以写代码了:
from?wordcloud?import?WordCloud
wc?=?WordCloud()????#?创建词云对象
wc.generate('Do?not?go?gentle?into?that?good?night')????#?生成词云
wc.to_file('wc.png')????#?保存词云
执行代码后生成如下词云:
当然这只是最简单的词云,词云更详细的操作可以参见WordCloud生成卡卡西忍术词云[1]。


批量抠图


抠图的实现需要借助百度飞桨的深度学习工具paddlepaddle,我们需要安装两个模块就可以很快的实现批量抠图了,第一个是PaddlePaddle:

python?-m?pip?install?paddlepaddle?-i?https://mirror.baidu.com/pypi/simple
还有一个是paddlehub模型库:
pip?install?-i?https://mirror.baidu.com/pypi/simple?paddlehub
更详细的安装事项可以参见飞桨官网:https://www.paddlepaddle.org.cn/

接下来我们只需要5行代码就能实现批量抠图:

import?os,?paddlehub?as?hub
humanseg?=?hub.Module(name='deeplabv3p_xception65_humanseg')????????#?加载模型
path?=?'D:/CodeField/Workplace/PythonWorkplace/GrapImage/'????#?文件目录
files?=?[path?+?i?for?i?in?os.listdir(path)]????#?获取文件列表
results?=?humanseg.segmentation(data={'image':files})????#?抠图
抠图效果如下:

其中左边为原图,右边为抠图后填充黄色背景图。


文字情绪识别


在paddlepaddle面前,自然语言处理也变得非常简单。实现文字情绪识别我们同样需要安装PaddlePaddle和Paddlehub,具体安装参见三中内容。然后就是我们的代码部分了:

import?paddlehub?as?hub????????
senta?=?hub.Module(name='senta_lstm')????????#?加载模型
sentence?=?[????#?准备要识别的语句
????'你真美',?'你真丑',?'我好难过',?'我不开心',?'这个游戏好好玩',?'什么垃圾游戏',
]
results?=?senta.sentiment_classify(data={"text":sentence})????#?情绪识别
#?输出识别结果
for?result?in?results:
????print(result)
识别的结果是一个字典列表:
{'text':?'你真美',?'sentiment_label':?1,?'sentiment_key':?'positive',?'positive_probs':?0.9602,?'negative_probs':?0.0398}
{'text':?'你真丑',?'sentiment_label':?0,?'sentiment_key':?'negative',?'positive_probs':?0.0033,?'negative_probs':?0.9967}
{'text':?'我好难过',?'sentiment_label':?1,?'sentiment_key':?'positive',?'positive_probs':?0.5324,?'negative_probs':?0.4676}
{'text':?'我不开心',?'sentiment_label':?0,?'sentiment_key':?'negative',?'positive_probs':?0.1936,?'negative_probs':?0.8064}
{'text':?'这个游戏好好玩',?'sentiment_label':?1,?'sentiment_key':?'positive',?'positive_probs':?0.9933,?'negative_probs':?0.0067}
{'text':?'什么垃圾游戏',?'sentiment_label':?0,?'sentiment_key':?'negative',?'positive_probs':?0.0108,?'negative_probs':?0.9892}
其中sentiment_key字段包含了情绪信息,详细分析可以参见Python自然语言处理只需要5行代码[2]。

识别是否带了口罩


这里同样是使用PaddlePaddle的产品,我们按照上面步骤安装好PaddlePaddle和Paddlehub,然后就开始写代码:

import?paddlehub?as?hub
#?加载模型
module?=?hub.Module(name='pyramidbox_lite_mobile_mask')
#?图片列表
image_list?=?['face.jpg']
#?获取图片字典
input_dict?=?{'image':image_list}
#?检测是否带了口罩
module.face_detection(data=input_dict)
执行上述程序后,项目下会生成detection_result文件夹,识别结果都会在里面,识别效果如下:


简易信息轰炸


Python控制输入设备的方式有很多种,我们可以通过win32或者pynput模块。我们可以通过简单的循环操作来达到信息轰炸的效果,这里以pynput为例,我们需要先安装模块:

pip?install?-i?https://pypi.tuna.tsinghua.edu.cn/simple/?pynput
在写代码之前我们需要手动获取输入框的坐标:
from?pynput?import?mouse
#?创建一个鼠标
m_mouse?=?mouse.Controller()
#?输出鼠标位置
print(m_mouse.position)
可能有更高效的方法,但是我不会。

获取后我们就可以记录这个坐标,消息窗口不要移动。然后我们执行下列代码并将窗口切换至消息页面:

import?time
from?pynput?import?mouse,?keyboard
time.sleep(5)
m_mouse?=?mouse.Controller()????#?创建一个鼠标
m_keyboard?=?keyboard.Controller()??#?创建一个键盘
m_mouse.position?=?(850,?670)???????#?将鼠标移动到指定位置
m_mouse.click(mouse.Button.left)?#?点击鼠标左键
while(True):
????m_keyboard.type('你好')????????#?打字
????m_keyboard.press(keyboard.Key.enter)????#?按下enter
????m_keyboard.release(keyboard.Key.enter)????#?松开enter
????time.sleep(0.5)????#?等待?0.5秒
我承认,这个超过了10行代码,而且也不高端。使用前QQ给小号发信息效果如下:


识别图片中的文字


我们可以通过Tesseract来识别图片中的文字,在Python中实现起来非常简单,但是前期下载文件、配置环境变量等稍微有些繁琐,所以本文只展示代码:

import?pytesseract
from?PIL?import?Image
img?=?Image.open('text.jpg')
text?=?pytesseract.image_to_string(img)
print(text)
其中text就是识别出来的文本。如果对准确率不满意的话,还可以使用百度的通用文字接口。

绘制函数图像


图标是数据可视化的重要工具,在Python中matplotlib在数据可视化中发挥重要作用,下面我们来看看使用matplotlib如何绘制一个函数图像:

import?numpy?as?np?
from?matplotlib?import?pyplot?as?plt?

x?=?np.arange(1,11)?????#?x轴数据
y?=??x?*?x?+??5?????????#?函数关系
plt.title("y=x*x+5")?????#?图像标题
plt.xlabel("x")?????#?x轴标签
plt.ylabel("y")?????#?y轴标签
plt.plot(x,y)?????#?生成图像
plt.show()????#?显示图像
生成图像如下:


人工智能


下面给大家介绍的是独家的AI人工智能,一般不外传的。这个人工智能可以回答许多问题,当然人工智能现在还在发展阶段,想要理解人类的语言还差很多。废话不多说,下面来看看我们的人工智能Fdj:

while(True):
????question?=?input()
????answer?=?question.replace('吗',?'呢')
????answer?=?answer.replace('?',?'!')
????print(answer)
下面我们来看看简单的测试:
你好吗?
我好呢!
你吃饭了吗?
我吃饭了呢!
你要睡了吗?
我要睡了呢!
看来我们“小复”还是比较智能的。

[1]?WordCloud生成卡卡西忍术词云:?https://blog.csdn.net/ZackSock/article/details/103517841
[2]?Python自然语言处理只需要5行代码:?https://blog.csdn.net/ZackSock/article/details/105057106

原文:https://blog.csdn.net/ZackSock/article/details/105193651

【END】

更多精彩推荐

?数字化转型太太太难?AI、IoT重拳出击!

?堪称奇迹!8天诞生一个产品,这家创业公司做到了

?循环智能杨植麟:“人机耦合”将是对话语义应用的新趋势!

?曾遭周鸿祎全网封杀的360猛将:草根打工到36岁身家上亿的逆袭!

?详Kubernetes在边缘计算领域的发展

?原来疫情发生后,全球加密社区为了抗击冠状病毒做了这么多事情!

?一文读懂“情感计算”在零售中的应用发展


你点的每个“在看”,我都认真当成了喜欢

关注公众号:拾黑(shiheibook)了解更多

[广告]赞助链接:

四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

图库
公众号 关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接