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

news2024/11/15 4:56:53

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

一、生成二维码

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

pip install qrcode 

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

import qrcode  
  
text = 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.0  
        brightness=1.0,    
        # 用来调节图片的亮度,其余用法和取值同上  
        save_name=gakki_code.gif,    
        # 保存文件的名字,格式可以是jpg,png,bmp,gif  
        save_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 jieba  
  
text_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()  

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

读一下这10行代码:

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

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

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

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

  • 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)    # 按下enter  
    m_keyboard.release(keyboard.Key.enter)    # 松开enter  
    time.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 =guess  
  
i = 0  
while guess != num:  
    i += 1  
    guess = int(input(请输入你猜的数字:))  
  
    if guess == num:  
        print(恭喜,你猜对了!)  
    elif guess < num:  
        print(你猜的数小了...)  
    else:  
        print(你猜的数大了...)  
  
print(你总共猜了%d %i + 次)  

猜数小案例当着练练手

---------------------------END---------------------------

题外话

在这里插入图片描述

感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。

👉CSDN大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

img
img

二、Python必备开发工具

工具都帮大家整理好了,安装就可直接上手!img

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

img

四、Python视频合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

六、面试宝典

在这里插入图片描述

在这里插入图片描述

简历模板在这里插入图片描述

👉CSDN大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

如有侵权,请联系删除。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/930493.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux】【驱动】驱动挂载的时候给驱动传递参数

【Linux】【驱动】驱动挂载的时候给驱动传递参数 绪论1.什么是驱动传参驱动传参就是传递参数给我们的驱动举例:2.驱动传参数有什么作用呢?3. 传递单个参数使用如下的数组4. 传递数组使用以下函数&#xff1a; 传递数字值代码指令 传递数组代码传递数组指令 绪论 1.什么是驱动…

拒绝摆烂!C语言练习打卡第六天

&#x1f525;博客主页&#xff1a;小王又困了 &#x1f4da;系列专栏&#xff1a;每日一练 &#x1f31f;人之为学&#xff0c;不日近则日退 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 目录 一、选择题 &#x1f4dd;1.第一题 &#x1f4dd;2.第二题 &#x1f4d…

hbuilderx小程序基于Android的个人健身运动记录生活APP_45n2x

近些年来&#xff0c;随着科技的飞速发展&#xff0c;互联网的普及逐渐延伸到各行各业中&#xff0c;给人们生活带来了十分的便利&#xff0c;记录生活信息利用计算机网络实现信息化管理&#xff0c;使整个记录生活管理的发展和服务水平有显著提升。 本文拟采用Android平台进行…

玩转 PI 系列-看起来像服务器的 ARM 开发板矩阵-Firefly Cluster Server

前言 基于我个人的工作内容和兴趣&#xff0c;想要在家里搞一套服务器集群&#xff0c;用于容器/K8s 等方案的测试验证。 考虑过使用二手服务器&#xff0c;比如 Dell R730, 还搞了一套配置清单&#xff0c;如下&#xff1a; Dell R7303.5 尺寸规格硬盘CPU: 2686v4*2 内存&a…

【Linux网络】TCP UDP socket HTTP webSocket之间的区别

目录 一、OSI & TCP/IP模型 二、几者之间的关系 三、HTTP 四、Socket 五、WebSocket 5.1、WebSocket 优点 一、OSI & TCP/IP模型 首先我们要了解OSI七层模型&#xff0c;和预支对应的TCP/IP 四层的模型。 用下面的图可以看出&#xff0c;TCP UDP 工作在传输层&…

JavaScript:基本语法(变量与函数的定义与使用)

文章目录 script 标签srcdefer 延迟加载 基本语法定义变量 与 使用变量基本类型typeof 查看变量类型复合类型数组类型定义对象类型定义 函数定义函数使用函数 script 标签 src 和scc一样可以内嵌也可以外src外引。 一般是推荐外引。 <script src"idx.js">&l…

机器视觉应用开发四大软件,那一个对我们从0到1建设你的机器视觉知识体系更好

我们首先要理解什么是知识体系&#xff1a; 我们身处一个知识爆炸时代&#xff0c;我们面对各种课程&#xff0c;各种知识&#xff0c;“自身学习”&#xff0c;“高效记忆”&#xff0c;“批判性思维”&#xff0c;“解决问题的能力”。各种平台课程太多&#xff0c;各种买买…

《华为认证》配置vlan聚合

1、实验环境&#xff1a;如图所示&#xff0c;配置vlan 10、20、100 &#xff0c;vlan 100作为聚合vlan&#xff0c;vlan 10、vlan20作为子vlan&#xff0c;vlan 10和vlan 20配置成相同网段的ip地址。Vlanif 100 作为vlan 10 和vlan20的网关&#xff0c;在vlanif100上配置arp代…

linux查看正在运行的nginx在哪个文件夹当中

1、查出Nginx进程PID ps -ef|grep nginx2、查看Nginx进程启动时的工作目录 ls -la /proc/<PID>/cwd将<PID>替换为第一步中列出的Nginx进程的PID。该命令会显示Nginx进程在启动时所在的工作目录&#xff08;当前工作目录&#xff09;

基于Nodejs+vue的学习笔记分享系统设计与开发

本系统结合现今主流管理系统的功能模块以及设计方式进行分析&#xff0c;使用nodejs语言和vue.js框架进行开发设计&#xff0c;具体研究内容如下&#xff1a; (1) 管理员主要对个人中心&#xff0c;用户管理&#xff0c;笔记本管理&#xff0c;笔记分享管理&#xff0c;分享…

流量洪峰?不惧!手把手教你应对高并发挑战!

大家好&#xff0c;我是你们的小米&#xff01;今天我要和大家聊一个充满挑战和创意的话题&#xff1a;如何解决瞬时大流量高并发&#xff1f;想必很多小伙伴们在开发过程中都遇到过这个让人头疼的问题吧。别担心&#xff0c;我在这里和你分享我的经验&#xff0c;让你轻松驾驭…

网站巡检的重要性及其后果分析

在信息化、电子化的今天&#xff0c;网站已经成为企业、组织和个人展示形象、传播信息、提供服务的重要窗口。与此同时&#xff0c;为了确保网站的正常运行、用户体验和数据安全&#xff0c;定期的网站巡检就显得尤为重要。以下对网站巡检的重要性和可能的后果进行深入分析&…

部署 ssm 项目到云服务器上(购买云服务器 + 操作远程云服务器 + 服务器中的环境搭建 + 部署项目到服务器)

部署 Web 项目 1、获取 Linux 环境1.1、如何去买一个云服务器1.2、远程操作云服务器1.3、在 Linux 系统中搭建 Java Web 的运行环境。1&#xff09;安装 JDK&#xff08;使用包管理器 yum 来安装&#xff09;2&#xff09; 安装Tomcat3&#xff09;安装 MySQL。 1.4、在云服务器…

南卡开放式耳机再添新品,南卡OE CC会不会成为行业搅局者?

Nank南卡官方于8月25日宣布&#xff0c;将要上线一款百元级性价比神机-南卡OE CC&#xff0c;该新款开放式耳机以“年度开放式耳机百元标杆”为宣传口号&#xff0c;Nank南卡一直以来坚持产品力优先&#xff0c;在研发上一直都很激进&#xff0c;上一代的OE Pro首创了EAA悬停舒…

【无需公网IP】在树莓派上搭建Web站点

目录 1.概述 2.使用 Raspberry Pi Imager 安装 Raspberry Pi OS 3.设置 Apache Web 服务器 3.1测试 web 站点 3.2安装静态样例站点 3.3将web站点发布到公网 3.4安装 Cpolar 3.5cpolar进行token认证 3.6生成cpolar随机域名网址 3.7生成cpolar二级子域名 3.8将参数保存…

使用通信顺序进程(CSP)模型的 Go 语言通道

在并发编程中&#xff0c;许多编程语言采用共享内存/状态模型。然而&#xff0c;Go 通过实现 通信顺序进程&#xff08;CSP&#xff09;模型来区别于众多。在CSP中&#xff0c;程序由不共享状态的并行进程组成&#xff1b;相反&#xff0c;它们通过通道进行通信和同步操作。因此…

多线程常见面试题

常见的锁策略 这里讨论的锁策略,不仅仅局限于 Java 乐观锁 vs 悲观锁 锁冲突: 两个线程尝试获取一把锁&#xff0c;一个线程能获取成功,另一个线程阻塞等待。 乐观锁: 预该场景中,不太会出现锁冲突的情况。后续做的工作会更少。 悲观锁: 预测该场景,非常容易出现锁冲突。后…

【宝藏系列】一文带你梳理 Linux 的五种 IO 模型

【宝藏系列】一文带你梳理 Linux 的五种 IO 模型 文章目录 【宝藏系列】一文带你梳理 Linux 的五种 IO 模型&#x1f468;‍&#x1f3eb;前言1️⃣用户态和核心态1️⃣1️⃣用户态和核心态的切换 2️⃣进程切换3️⃣进程阻塞4️⃣文件描述符(fd, File Descriptor)5️⃣缓存I/O…

jemter连接数据json断言

文章目录 一、jmeter连接数据库1、加载JDBC驱动2、连接数据3、SQL Query的Query Type使用方法&#xff1a;4、Variable Name使用方法&#xff1a;5、Result variable name使用方法&#xff1a; 二、Json响应断言1、添加 》 断言 》 JSON断言2、JSON断言界面参数说明&#xff1a…

Leetcode80. 删除有序数组中的重复项 II

给你一个有序数组 nums &#xff0c;请你 原地 删除重复出现的元素&#xff0c;使得出现次数超过两次的元素只出现两次 &#xff0c;返回删除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。 class Solu…