作者 | 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)    # 按下enterm_keyboard.release(keyboard.Key.enter)    # 松开entertime.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在边缘计算领域的发展

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

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

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

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

  1. Python10行以内代码能有什么高端操作

    Python10行以内代码能有什么高端操作 Python凭借其简洁的代码,赢得了许多开发者的喜爱.因此也就促使了更多开发者用Python开发新的模块,从而形成良性循环,Python可以凭借更加简短的代 ...

  2. 十行Python以内代码能有什么高端操作?

    作者 | ZackSock 来源 | CSDN博客 Python凭借其简洁的代码,赢得了许多开发者的喜爱.因此也就促使了更多开发者用Python开发新的模块,从而形成良性循环,Python可以凭借更加 ...

  3. 20行 Python 代码爬取王者荣耀全英雄皮肤 | 原力计划

    作者 | wangweijun 责编 | Elle 出品 | CSDN 博客 引言 王者荣耀大家都玩过吧,没玩过的也应该听说过,作为时下最火的手机MOBA游戏,咳咳,好像跑题了.我们今天的重点是爬取王 ...

  4. 找不到libmmd.dll无法继续执行代码_300 行代码带你秒懂 Java 多线程!| 原力计划...

    作者 | 永远在路上[] 责编 | 胡巍巍 出品 | CSDN博客 线程线程的概念,百度是这样解释的:线程(英语:Thread)是操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进程中的实际 ...

  5. 300 行代码带你秒懂 Java 多线程!| 原力计划

    作者 | 永远在路上[] 责编 | 胡巍巍 出品 | CSDN博客 线程 线程的概念,百度是这样解释的: 线程(英语:Thread)是操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进程中的 ...

  6. 10 行以下 Python 代码,能有什么高端操作?

    点击上方蓝色小字,关注"涛哥聊Python" 重磅干货,第一时间送达 来源:ZackSock Python凭借其简洁的代码,赢得了许多开发者的喜爱.因此也就促使了更多开发者用Pyt ...

  7. So easy!10 行代码写个“让你惊叹”的文章生成器 | 原力计划

    作者 | liu志军 责编 | 屠敏 出品 | CSDN 博客 前几天,GitHub 有个开源项目特别火,只要输入标题就可以生成一篇长长的文章. 背后实现代码一定很复杂吧,里面一定有很多高深莫测的机器 ...

  8. 10 行 Java 代码实现 LRU 缓存

    10 行 Java 代码实现 LRU 缓存 (整理自网络) 最近最少使用缓存的回收 为了实现缓存回收,我们需要很容易做到: 查询出最近最晚使用的项 给最近最少使用的项做一个标记 链表可以实现这两个操作 ...

  9. php公告滚动源码,10行js代码实现上下滚动公告效果方法

    本文主要给大家介绍了关于利用10行js代码实现滚动公告效果的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起看看吧.希望能帮助到大家 ...

最新文章

  1. C语言 | 基于卡尔曼滤波器的角度测量仪(MPU6050)
  2. ubuntu下安装chrome浏览器和flash插件
  3. 【转载】某牛逼的文章《曝光一下我开发的游戏项目的日报周报 》
  4. UDK控制台命令概览
  5. 疫情下的“双11”,品牌逆势增长背后的数字化变革
  6. 比特币的双花和51%算力攻击
  7. 浏览器市场 Chrome 仍占主导地位,IE 继续下降
  8. Android开发/源码资源汇总
  9. matlab 矩阵模二运算符,MATLAB中怎样进行模二加的运算?
  10. 新手怎么在GitHub上传代码?----最新教程
  11. 【Opencv】图像分割——区域生长
  12. 【模板】普通平衡树,洛谷P3369,splay
  13. qq浏览器网站禁止访问怎么办 qq浏览器网站禁止访问如何解决
  14. python暴力破解excel_使用 Python 读写 Excel 文件(一)
  15. sus 逆向 writrup
  16. [转载]Shell十三问(入门与提高)
  17. 2012-ImageNet数据集冠军AlexNet论文英文原文及AlexNet分析
  18. 腾讯案例实战!聊聊设计中「需求」的正确打开方式
  19. “雨雪天气”驾驶经验:
  20. (转)ArcGIS中利用“行政单…

热门文章

  1. C#-WinForm-布局-Anchor-锁定布局、Dock-填充布局、工具箱中的容器
  2. ExtJS学习之路第三步:理解引擎之下,ExtJS4中的类
  3. 添加游戏到游戏浏览器中的小工具
  4. 数值分析(第五版) 第二章知识点总结
  5. PAT乙级1025反转链表 25(分)
  6. 魔力转圈圈(快速幂)
  7. linux下dns服务器部署,linux系统下部署DNS服务器
  8. python js 性能_Python Json使用,Json库性能测试
  9. Effective Modern C++ 第一章 C++11/14/17中的类型推断
  10. 中国农业种植施肥机械行业市场供需与战略研究报告