当前位置: 首页 > 编程日记 > 正文

10行 python 代码做出哪些酷炫的事情?

9ce5d95ccb3fcc09a0fbdb6d97029c75.gif

来源 | Python小二

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

一、生成二维码

二维码又称二维条码,常见的二维码为QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,而生成一个二维码也非常简单,在Python中我们可以通过MyQR模块了生成二维码,而生成一个二维码我们只需要2行代码,我们先安装MyQR模块,这里选用国内的源下载:

pip install qrcode

安装完成后我们就可以开始写代码了:

import qrcodetext = input(输入文字或URL:)  
# 设置URL必须添加http://
img =qrcode.make(text)
img.save()                            
#保存图片至本地目录,可以设定路径
img.show()

我们执行代码后会在项目下生成一张二维码。当然我们还可以丰富二维码:
我们先安装MyQR模块

pip install  myqr
def gakki_code():version, level, qr_name = myqr.run(words=https://520mg.com/it/#/main/2,  # 可以是字符串,也可以是网址(前面要加http(s)://)version=1,  # 设置容错率为最高level='H',  # 控制纠错水平,范围是L、M、Q、H,从左到右依次升高picture=gakki.gif,  # 将二维码和图片合成colorized=True,  # 彩色二维码contrast=1.0, # 用以调节图片的对比度,1.0 表示原始图片,更小的值表示更低对比度,更大反之。默认为1.0brightness=1.0,  # 用来调节图片的亮度,其余用法和取值同上save_name=gakki_code.gif,  # 保存文件的名字,格式可以是jpg,png,bmp,gifsave_dir=os.getcwd()  # 控制位置)gakki_code()

另外MyQR还支持动态图片。

二、生成词云

词云又叫文字云,是对文本数据中出现频率较高的“关键词”在视觉上的突出呈现,形成关键词的渲染形成类似云一样的彩色图片,从而一眼就可以领略文本数据的主要表达意思。

但是作为一个老码农,还是喜欢自己用代码生成自己的词云,复杂么?需要很长时间么?很多文字都介绍过各种的方法,但实际上只需要10行python代码即可。

先安装必要库

pip install wordcloud
pip install jieba
pip install matplotlib
import matplotlib.pyplot as plt
from wordcloud import WordCloud
import jiebatext_from_file_with_apath = open('/Users/hecom/23tips.txt').read()wordlist_after_jieba = jieba.cut(text_from_file_with_apath, cut_all = True)
wl_space_split =  .join(wordlist_after_jieba)my_wordcloud = WordCloud().generate(wl_space_split)plt.imshow(my_wordcloud)
plt.axis(off)
plt.show()

如此而已,生成的一个词云是这样的:

c0da35ee6821c2a2ac8390c5996d7dd2.png

读一下这10行代码:

  1. 1~3 行,分别导入了画图的库matplotlib,词云生成库wordcloud 和 jieba的分词库;

  2. 4 行,是读取本地的文件,代码中使用的文本是本公众号中的《老曹眼中研发管理二三事》。

  3. 5~6 行,使用jieba进行分词,并对分词的结果以空格隔开;

  4. 7行,对分词后的文本生成词云;

  5. 8~10行,用pyplot展示词云图。

这是我喜欢python的一个原因吧,简洁明快。

三、批量抠图

抠图的实现需要借助百度飞桨的深度学习工具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

接下来我们只需要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行代码。

五、识别是否带了口罩

这里同样是使用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行代码,而且也不高端。

七、识别图片中的文字

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

import pytesseract
from PIL import Image
img = Image.open('text.jpg')
text = pytesseract.image_to_string(img)
print(text)

其中text就是识别出来的文本。如果对准确率不满意的话,还可以使用百度的通用文字接口。

八、简单的小游戏

从一些小例子入门感觉效率很高。

import random
print(1-100数字猜谜游戏!)
num = random.randint(1,100)
guess =guessi = 0
while guess != num:i += 1guess = int(input(请输入你猜的数字:))if guess == num:print(恭喜,你猜对了!)elif guess < num:print(你猜的数小了...)else:print(你猜的数大了...)print(你总共猜了%d %i + 次)

猜数小案例当着练练手

24c404dd6de4c2628fdac94f7ce78395.gif

b4ebe5304b690491d6f71d4115644e5e.png

技术

Python实现一个电影订票系统

技术

用Python实现十大经典排序算法

技术

快速实现Resnet残差模型实战

资讯

隐患:神经网络可以隐藏恶意软件

7143eaecee8cdf0f9ce211deba40d380.png

分享

c454ff0f98bcfd3b406c66f89574352b.png

点收藏

0ed79ad1393759c1849a718fe5ab48ea.png

点点赞

48d24d29a4c02eae85d04ec61156fd4d.png

点在看

相关文章:

这是一个不一样的社会公益活动

公益不是每个人的刚需&#xff0c;但是可以&#xff0c;以全链条模式联动更多人需求。 社会公益就是给社会带来帮助的事或物&#xff0c;它包含社区服务&#xff0c;环境保护&#xff0c;知识传播&#xff0c;公共福利&#xff0c;帮助他人&#xff0c;社会援助&#xff0c;社会…

剖析PHP中的输出缓冲

剖析PHP中的输出缓冲 本文按署名非商业用途保持一致授权作者: &#xff0c;发表于2005年12月24日01时54分 我们先来看一段代码。<?php for ($i10; $i>0; $i--) {echo $i;flush();sleep(1); } ?>按照php手册里的说法该函数将当前为止程序的所有输出发送到用户的浏览…

luasocket 安装记录 (FS1.6)

说明&#xff1a; 想通过Lua 脚本实现 http。默认 FS 的 mod_lua 中没有对socket 的支持&#xff0c;如下的操作为lua 添加 socket的支持。 一、下载 luasocket 包&#xff1a; # wget http://luaforge.net/frs/download.php/2664/luasocket-2.0.2.tar.gz # tar zxvf luaso…

5个实用的例子,一行 Python 能干嘛?

作者 | 菜鸟哥来源 | 菜鸟学Python一行Python到底能干嘛&#xff0c;今天给大家分享几个不错的小例子&#xff0c;都是在实际工作中经常会碰到的例子&#xff0c;让你知道一行代码的威力&#xff0c;让菜鸟也能秒变王者&#xff0c;尤其是能镇住新来的学妹。01、如果你是HR你手…

ASP.NET Web Forms - 网站导航(Sitemap 文件)

【参考】ASP.NET Web Forms - 导航 ASP.NET 带有内建的导航控件。 网站导航 维护大型网站的菜单是困难而且费时的。 在 ASP.NET 中&#xff0c;菜单可存储在文件中&#xff0c;这样易于维护。文件通常名为 web.sitemap&#xff0c;并且被存放在网站的根目录下。 此外&#xff0…

14 款命令行常用工具的替代品!

作者 | JackTian来源 | 杰哥的IT之旅在 Linux 操作系统下&#xff0c;ls (list) 可以说是我们日常使用率较高的命令了&#xff0c;它主要用来显示目标列表&#xff0c;输出信息可以进行彩色加亮显示&#xff0c;以分区不同类型的文件。关于 ls[1] 的语法、选项、实例、扩展知识…

C#编码实践:使用委托和特性调用指定函数

2019独角兽企业重金招聘Python工程师标准>>> 建立一个C#控制台应用程序AttributeTest。 建立一个类Operations&#xff0c;代码如下&#xff1a; namespace AttributeTest {public class Operations{public static int Add(int a, int b) { return a b; }public st…

HTTP响应头不缓存

Cache-Control:nocache Pragma:no-cache Expires&#xff1a;-1 <meta http-equivCache-Control content-1/>

CSS面试复习(三):预处理器、工程化方案、三大框架中的CSS

一、预处理器 1、介绍 基于CSS的另一种语言、通过工具编译成CSS、添加了很多CSS不具备的特性、能提升CSS文件的组织 2、less嵌套 3 、sass嵌套 4、 less变量 5、sass变量 6、less mixin 7、sass mixin 8、less extend 9、sass extend 10、less loop 11、sass loop 12、less imp…

用了这么久的 Python,居然没注意到这个操作

作者 | luanhz来源 | 小数志导读Python语言近年来的火热程度自不必说&#xff0c;这一方面得益于其庞大的第三方库的加持&#xff0c;使得其堪称万金油般的存在&#xff1b;另一方面也在于其简洁的语法和易用的函数。是的&#xff0c;Python语法之简洁和函数之丰富&#xff0c;…

apache的keepalive和keepalivetimeout(apache优化)

在APACHE的httpd.conf中&#xff0c;KeepAlive指的是保持连接活跃&#xff0c;类似于Mysql的永久连接。换一句话说&#xff0c;如果将KeepAlive设置为On&#xff0c;那么来自同一客户端的请求就不需要再一次连接&#xff0c;避免每次请求都要新建一个连接而加重服务器的负担。 …

讨论JDK的File.equal()

我们一般比较两个文件中的对象是相同的文件&#xff0c;通常使用java.io.File.equal()。这里&#xff0c;equal()是不是文件内容的比较结果为。象是否指向同一个文件。File的equal()方法。实际上调用了当前文件系统FileSystem的compareTo()。public boolean equals(Object obj)…

百度云满速下载(转)

BaiduPCS-GO下载完毕后可以存放到任何位置&#xff0c;建议存放到无中文目录内。然后打开我的电脑→属性→高级系统设置→环境变量→系统变量→Path→编辑→新建&#xff0c;输入你的BaiduPCS-Go存放目录。注意&#xff1a;是存放目录。 这样CMD才可以正确识别到程序。做好所有…

内容协商 (Content Negotiation)

大多数响应包含一个实体&#xff0c;此实体包含人类用户能理解的信息。通常&#xff0c;希望提供给用户相应于请求最容易得到的实体。对服务器和缓存来说&#xff0c;不幸的是&#xff0c;并不是所有的用户都对这个最容易得到的实体有喜好&#xff0c;并且并不是所有的用户代理…

[经验]无线鼠标和无线键盘真的不能用了?——雷柏的重生之路~

逆天大二的时候托朋友买了个雷柏的无线键盘鼠标&#xff1a; 用了很多年&#xff0c;不仅外观好而且键盘鼠标本身也很好用&#xff0c;可前些日子就光荣牺牲了。。。。 逆天百思不得其"姐"&#xff0c;试着把电池换了&#xff0c;发现还是不行&#xff0c;&#xff0…

数字化探索:建立学习型组织,HR 也能驱动业务营收?

本篇文章暨 CSDN《中国 101 计划》系列数字化转型场景之一。 《中国 101 计划——探索企业数字化发展新生态》为 CSDN 联合《新程序员》、GitCode.net 开源代码仓共同策划推出的系列活动&#xff0c;寻访一百零一个数字化转型场景&#xff0c;聚合呈现并开通评选通道&#xff0…

26期20180716 iptables规则备份恢复 firewalld zone

7月16日任务10.19 iptables规则备份和恢复10.20 firewalld的9个zone10.21 firewalld关于zone的操作10.22 firewalld关于service的操作iptables的规则备份和恢复service iptables save会把配置保存到配置文件中 /etc/sysconfig/iptables如果不想保存在这 可以使用iptables-save …

一口气用 Python 写了13个小游戏,摸鱼达人!

来源 | Python小二1、吃金币源码分享&#xff1a;import os import cfg import sys import pygame import random from modules import *游戏初始化 def initGame():# 初始化pygame, 设置展示窗口pygame.init()screen pygame.display.set_mode(cfg.SCREENSIZE)pygame.display.…

关于URL编码

参考&#xff1a;前端工程师的编码遭遇战http://ued.taobao.com/blog/2011/08/26/encode-war/細 談 URL 編碼关于URL编码作者&#xff1a; 阮一峰日期&#xff1a; 2010年2月11日一、问题的由来URL就是网址&#xff0c;只要上网&#xff0c;就一定会用到。一般来说&#xff0c;…

【设计模式】享元模式

上周代码评审&#xff0c;看到同事使用了“享元模式”。想起自己也不懂&#xff0c;着手学习之。 参考的优秀的文章&#xff1a; Java的享元模式 这篇博文为学习之理解、感悟&#xff0c;如理解不真确&#xff0c;请慷慨指出。 本文只讨论单纯享元模式。 Flyweight&#xff0c;…

用D3.js 十分钟实现字符跳动效果

用D3.js 十分钟实现字符跳动效果 注 本文基于 D3.js 作者 Mike Bostock 的 例子原文分为三部分, 在这里笔者将其整合为了一篇方便阅读. 该效果基于 D3.js, 主要使用到了 d3-selection. 如果对d3-selection的基本使用逻辑不太清楚可以参见 这篇文章. 效果图 Step1 首先代码会随机…

HTTP中的缓存

HTTP典型应用于能通过采用缓存技术而提高性能的分布式信息系统。HTTP/1.1协议包括的许多使缓存尽可能的工作的元素。因为这些元素与协议的其他方面有着千丝万缕的联系&#xff0c;而且他们相互作用、影响&#xff0c;因此有必要单独的来介绍基本的缓存设计。如果缓存不能改善性…

Pandas 多层级索引的数据分析案例,超干货!

作者 | 俊欣来源 | 关于数据分析与可视化今天我们来聊一下Pandas当中的数据集中带有多重索引的数据分析实战通常我们接触比较多的是单层索引&#xff08;左图&#xff09;&#xff0c;而多级索引也就意味着数据集当中的行索引有多个层级&#xff08;右图&#xff09;&#xff0…

Angular - - $sce 和 $sceDelegate

$sce $sce 服务是AngularJs提供的一种严格上下文转义服务。 严格的上下文转义服务 严格的上下文转义(SCE)是一种需要在一定的语境中导致AngularJS绑定值被标记为安全使用语境的模式。由用户通过ng-bind-html绑定任意HTML语句就是这方面的一个例子。我们称这些上下文转义为特权或…

Varnish 和 Squid比较到底强多少

对于坊间流传的:1.varnish的性能比squid高10~20倍2.squid 3.0的性能比2.6有提高本次测试将会揭示结果,是否varnish的架构真的能提升那么多的性能是否squid的新版本在性能上有所提升测试中将不对平台.软件.等等进行优化由于优化水平的关系将极大的影响结果.此次测试中的数据可以…

太强了,Python 开发桌面小工具,让代码替我们干重复的工作~

作者 | Cherish 来源 | 杰哥的IT之旅 决定写这篇文章的初衷是来源于一位小伙伴的问题&#xff0c;关于"如何根据数据源用 Python 自动生成透视表"&#xff0c;这个问题背后有个非常好的解决思路&#xff0c;让代码替我们做重复的工作&#xff0c;从而减轻工作量&…

Windows 2008

Windows2008系统实现多用户登录 https://help.aliyun.com/knowledge_detail/6530052.html?spm5176.7618386.5.1.RTfIVT#Windows2008系统实现多用户登录 ECS Windows2008如何支持用户多会话登入 https://help.aliyun.com/knowledge_detail/6511066.html?spm5176.7618386.5.1.f…

java 复制对象有哪些方式

2019独角兽企业重金招聘Python工程师标准>>> java 复制对象有哪些方式 Apache的 Common beanutils库 org.apache.commons.beanutils.BeanUtils.copyProperties(dest,origin);Springframework 的BeanUtil 依赖: <dependency><groupId>org.springframewor…

mysql常用语句集锦

mysql UNIX时间戳与日期的相互转换 UNIX时间戳转换为日期用函数&#xff1a; FROM_UNIXTIME() select FROM_UNIXTIME(1156219870); 日期转换为UNIX时间戳用函数&#xff1a; UNIX_TIMESTAMP() Select UNIX_TIMESTAMP(’2006-11-04 12:23:00′); 例&#xff1a;mysql查询当天的记…

iOS15.4 来袭:新增“男妈妈”表情及口罩面容解锁、AirTags 反跟踪等新功能

整理 | 章雨铭 责编 | 屠敏出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;今日&#xff0c;苹果发布了iOS/iPadOS 15.4正式版。该版本带来了一些重大新功能的更新&#xff0c;包括在戴口罩时使用Face ID功能&#xff0c;以及一些新的表情符号和Siri语音更新…