5个有趣的Python实战项目(帮你快速掌握python语法)

开源 | 深度有趣 - 人工智能实战项目合集 呕心沥血了大半年,《深度有趣》人工智能实战项目合集,终于完工上线了! 《全栈》课程(https://study.163.com/course/courseMain.htm?courseId=1003520028)获得好评之后,我一直打算再出一门课。 大方向和人工智能相关,但具体内容做什么考虑了很久。 理论部分已经有很多神级大佬的工作,例如吴恩达老师的深度学习微专业课(https://mooc.st... 阅读详情

Python可以玩的方向有很多,比如爬虫、预测分析、GUI、自动化、图像处理、可视化等等,可能只需要十几行代码就能实现酷炫的功能。

因为Python是动态脚本语言,所以代码逻辑比Java要简要很多,实现同样的功能少写很多代码。而且Python生态有众多的第三方工具库,把功能都封装在包里,只需要你调用接口,就能使用复杂的功能。

下面举几个简单好玩的脚本例子,初学者可以照着代码写写,能快速掌握python语法。

1、使用PIL、Matplotlib、Numpy对模糊老照片进行修复

在这里插入图片描述

# encoding=utf-8  
import numpy as np   
import matplotlib.pyplot as plt   
from PIL import Image  
import os.path   
# 读取图片  
img_path = "E:\\test.jpg"   
img = Image.open(img_path)      
# 图像转化为numpy数组   
img = np.asarray(img)   
flat = img.flatten()     
# 创建函数   
def get_histogram(image, bins):       
# array with size of bins, set to zeros       
histogram = np.zeros(bins)       
# loop through pixels and sum up counts of pixels       
for pixel in image:           
histogram[pixel] += 1       
# return our final result       
return histogram      
# execute our histogram function   
hist = get_histogram(flat, 256)      
# execute the fn   
cs = np.cumsum(hist)      
# numerator & denomenator   
nj = (cs - cs.min()) * 255   N = cs.max() - cs.min()     
 # re-normalize the cumsum   
 cs = nj / N      
 # cast it back to uint8 since we can't use floating point values in images   
 cs = cs.astype('uint8')      
 # get the value from cumulative sum for every index in flat, and set that as img_new   
 img_new = cs[flat]      
 # put array back into original shape since we flattened it   
 img_new = np.reshape(img_new, img.shape)      
 # set up side-by-side image display   
 fig = plt.figure()   
 fig.set_figheight(15)   
 fig.set_figwidth(15)      
 # display the real image   
 fig.add_subplot(1, 2, 1)   
 plt.imshow(img, cmap='gray')   
 plt.title("Image 'Before' Contrast Adjustment")      
 # display the new image   
 fig.add_subplot(1, 2, 2)   
 plt.imshow(img_new, cmap='gray')   
 plt.title("Image 'After' Contrast Adjustment")  
 filename = os.path.basename(img_path)      
 # plt.savefig("E:\\" + filename)   
 plt.show()   

2、将文件批量压缩,使用zipfile库

import os   import zipfile   from random import randrange         def zip_dir(path, zip_handler):       for root, dirs, files in os.walk(path):           for file in files:               zip_handler.write(os.path.join(root, file))         if __name__ == '__main__':       to_zip = input("""   Enter the name of the folder you want to zip   (N.B.: The folder name should not contain blank spaces)   >   """)       to_zip = to_zip.strip() + "/"       zip_file_name = f'zip{randrange(0,10000)}.zip'       zip_file = zipfile.ZipFile(zip_file_name, 'w', zipfile.ZIP_DEFLATED)       zip_dir(to_zip, zip_file)       zip_file.close()       print(f'File Saved as {zip_file_name}')   

3、使用tkinter制作计算器GUI

tkinter是python自带的GUI库,适合初学者练手创建小软件

在这里插入图片描述

import tkinter as tk    
  
root = tk.Tk()  # Main box window   
root.title("Standard Calculator")  # Title shown at the title bar   
root.resizable(0, 0)  # disabling the resizeing of the window      

# Creating an entry field:   
e = tk.Entry(root,                
   width=35,                
   bg='#f0ffff',                
   fg='black',                
   borderwidth=5,                
   justify='right',                
   font='Calibri 15')   
e.grid(row=0, column=0, columnspan=3, padx=12, pady=12)         
def buttonClick(num):  
   # function for clicking       
   temp = e.get(       
   )# temporary varibale to store the current input in the screen       
   e.delete(0, tk.END)  # clearing the screen from index 0 to END       
   e.insert(0, temp + num)  
# inserting the incoming number input         
def buttonClear():  # function for clearing       
   e.delete(0, tk.END)      
# 代码过长,部分略   

4、PDF转换为Word文件

使用pdf2docx库,可以将PDF文件转为Word格式

在这里插入图片描述

from pdf2docx 
import Converter   
import os    
import sys     
 
# Take PDF's path as input    
pdf = input("Enter the path to your file: ")   
assert os.path.exists(pdf), "File not found at, "+str(pdf)   
f = open(pdf,'r+')      
#Ask for custom name for the word doc   
doc_name_choice = input("Do you want to give a custom name to your file ?(Y/N)")      

if(doc_name_choice == 'Y' or doc_name_choice == 'y'):       
   # User input       
   doc_name = input("Enter the custom name : ")+".docx"          
else:       
   # Use the same name as pdf       
   # Get the file name from the path provided by the user       
   pdf_name = os.path.basename(pdf)       
   # Get the name without the extension .pdf       
   doc_name =  os.path.splitext(pdf_name)[0] + ".docx"             
# Convert PDF to Word   
cv = Converter(pdf)      
#Path to the directory   
path = os.path.dirname(pdf)      
cv.convert(os.path.join(path, "", doc_name) , start=0, end=None)   
print("Word doc created!")   cv.close()   

5、Python自动发送邮件

使用smtplib和email库可以实现脚本发送邮件

在这里插入图片描述

import smtplib
import email
# 负责构造文本 
from email.mime.text import MIMEText   
# 负责构造图片   
from email.mime.image import MIMEImage   
# 负责将多个对象集合起来   
from email.mime.multipart import MIMEMultipart   
from email.header import Header      
# SMTP服务器,这里使用163邮箱   
mail_host = "smtp.163.com"   
# 发件人邮箱   
mail_sender = "******@163.com"   
# 邮箱授权码,注意这里不是邮箱密码,如何获取邮箱授权码,请看本文最后教程   
mail_license = "********"   
# 收件人邮箱,可以为多个收件人   
mail_receivers = ["******@qq.com","******@outlook.com"]      
mm = MIMEMultipart('related')      
# 邮件主题   subject_content = """Python邮件测试"""   
# 设置发送者,注意严格遵守格式,里面邮箱为发件人邮箱   
mm["From"] = "sender_name<******@163.com>"   
# 设置接受者,注意严格遵守格式,里面邮箱为接受者邮箱   
mm["To"] = "receiver_1_name<******@qq.com>,receiver_2_name<******@outlook.com>"   
# 设置邮件主题   
mm["Subject"] = Header(subject_content,'utf-8')      
# 邮件正文内容   
body_content = """你好,这是一个测试邮件!"""   
# 构造文本,参数1:正文内容,参数2:文本格式,参数3:编码方式   
message_text = MIMEText(body_content,"plain","utf-8")   
# 向MIMEMultipart对象中添加文本对象   
mm.attach(message_text)      
# 二进制读取图片   
image_data = open('a.jpg','rb')   
# 设置读取获取的二进制数据   
message_image = MIMEImage(image_data.read())   
# 关闭刚才打开的文件   
image_data.close()   
# 添加图片文件到邮件信息当中去   
mm.attach(message_image)      
# 构造附件   
atta = MIMEText(open('sample.xlsx', 'rb').read(), 'base64', 'utf-8')   
# 设置附件信息   
atta["Content-Disposition"] = 'attachment; filename="sample.xlsx"'   
# 添加附件到邮件信息当中去   
mm.attach(atta)      
# 创建SMTP对象   
stp = smtplib.SMTP()   
# 设置发件人邮箱的域名和端口,端口地址为25   
stp.connect(mail_host, 25)     
# set_debuglevel(1)可以打印出和SMTP服务器交互的所有信息   
stp.set_debuglevel(1)   
# 登录邮箱,传递参数1:邮箱地址,参数2:邮箱授权码   
stp.login(mail_sender,mail_license)   
# 发送邮件,传递参数1:发件人邮箱地址,参数2:收件人邮箱地址,参数3:把邮件内容格式改为str   
stp.sendmail(mail_sender, mail_receivers, mm.as_string())   
print("邮件发送成功")   
# 关闭SMTP对象   
stp.quit()   
【Python自学必备】8个实用又有趣的Python经典练手项目,每天一个只需一周,轻松提高你的编程能力!先码后看,文末有惊喜! 对于新手学Python而言,基础和高级编程这一块是很重要的,因为如果你没有学过它们,直接去学习某个方向,你将会一脸懵逼,所以这是绕不过的,打好这一块的基础之后,你完全可以无障碍地进阶Python的任何方向。学习资源:以上所有的文件都已经打包好了,需要的朋友请移步文末。 阅读详情

相关推荐

分享10个很酷、简单且有趣的 Python 项目及其源代码

在本文中,我们收录了 10 个有趣的 Python 项目,从适合初学者的简单 Python 项目到中级和高级 Python 项目,我们可以利用它们来挑战自己或提高 Python 编程技能。如果您是 GUI 新手,这个示例是一个很好的介绍,我们使用一系列简单的标签、按钮和输入字段来创建窗口,还使用 Python timeit 模块来处理打字测试的计时方面,并使用 random 模块来随机选择测试短语。因此,下次当您想将文章变成可播放的播客时,请考虑尝试一下,它绝对是值得复制的很酷的 Python 代码之一!

qq_56262770的博客 1万+

精选了20个Python实战项目(附源码),拿走就用!零基础练手不二项目!

Python是目前最好的编程语言之一。由于其可读性和对初学者的友好性,已被广泛使用。

轻松学python的博客 1万+

python项目开发实例-有趣的十个Python实战项目,让你瞬间爱上Python!

前言Python 是一种极具可读性和通用性的编程语言。Python 这个名字的灵感来自于英国喜剧团体 Monty Python,它的开发团队有一个重要的基础目标,就是使语言使用起来很有趣。Python 易于设置,并且是用相对直接的风格来编写,对错误会提供即时反馈,对初学者而言是个很好的选择。Python 是一种多范式语言,也就是说,它支持多种编程风格,包括脚本和面向对象,这使得它适用于通用目的。随...

q6q6q的专栏 3804

精选了20个Python实战项目(附源码),拿走就用!

点击上方“Python爬虫与数据挖掘”,进行关注回复“书籍”即可获赠Python从入门到进阶共10本电子书今日鸡汤昔闻洞庭水,今上岳阳楼。大家好,我是小F。Python是目前最好的编程语言之一。由于其可读性和对初学者的友好性,已被广泛使用。那么要想学会并掌握Python,可以实战的练习项目是必不可少的。接下来,我将给大家介绍20个非常实用的Python项目,帮助大家更好的...

pdcfighting的博客 5万+

python做简单小项目,python有趣的小项目

下一个任务是预测图像中人类的年龄。在这里,我将性别网络加载到内存中,并将检测到的人脸通过网络传输,用于性别检测任务。被占用的细胞是活的,而空的细胞是死的。首先需要编写用于检测人脸的代码,因为如果没有人脸检测,我们将无法进一步完成年龄和性别预测的任务。接下来,我将给大家介绍20个非常实用的Python项目,帮助大家更好的学习Python。生命游戏由英国数学家约翰·H·康威设计的,是一种类似于生物社会的兴衰和交替的游戏。闹钟是一种具有可以在预先设定的时间被激活以响铃的功能的时钟,用于唤醒打工人们。

2301_79533350的博客 1142

秀!学妹看见都惊呆的 Python 小项目!【界面应用项目及游戏开发】

目录一、界面应用1、计算器2、记事本3、登录和注册二、游戏开发1、20482、贪吃蛇3、俄罗斯方块4、连连看 一、界面应用 1、计算器 1. 案例介绍 本例利用 Python 开发一个可以进行简单的四则运算的图形化计算器,会用到 Tkinter 图形组件进行开发。主要知识点:Python Tkinter 界面编程;计算器逻辑运算实现。本例难度为初级,适合具有 Python 基础和 Tkinter 组件编程知识的用户学习。 2. 设计原理 要制作一个计算器,首先需要知道它由哪些部分组成。示意如下图所示。 从

XAMO Lab|代码、调试与复盘笔记 8634

Python 小白从零开始 PyQt5 项目实战(8)汇总篇(完整例程)

本系列面向 Python 小白,从零开始实战解说应用 QtDesigner 进行 PyQt5 的项目实战。不跳过一个细节,不漏掉一行代码,不省略一个例图。 本系列从软件安装、环境配置开始,介绍了基本应用:菜单和工具栏、基本控件,核心机制:信号与槽连接、高级应用:布局管理、窗口切换和折叠侧边栏,并通过项目实战案例介绍各种应用的详细操作过程。本文汇总相关内容,并给出项目实战的完整例程。

youcans的博客 9万+

Latex小白也能搞定!5分钟教你用Overleaf打造个性化简历(附免费模板)

本文为LaTeX新手提供了一份快速上手指南,教你如何在5分钟内使用Overleaf在线平台和现成模板,轻松打造专业且个性化的简历。文章详细介绍了从选择模板、替换个人信息到进行颜色、图标等个性化调整的完整流程,让你无需深入学习LaTeX语法,即可高效制作出排版精美、脱颖而出的求职简历。

2a4s6d8f0g的博客 683

Python实战:5个有趣的小项目带你入门

通过这个项目,你不仅能学会基本的数据获取和处理,还能理解API调用的概念。这是一个很好的练习Python基础语法的项目。今天我想分享5个适合Python初学者的有趣小项目,通过这些项目你可以快速掌握Python基础,并获得编程的成就感。通过这些项目的练习,你不仅能掌握Python基础,还能建立起解决实际问题的思维方式。建议从一个最简单的项目开始,逐步挑战更复杂的项目,这样学习曲线会比较平缓。来练习这些项目非常方便,因为它提供了完整的Python运行环境,可以直接在浏览器中编写和运行代码,无需任何本地配置。

IndigoNight21的博客 913

python指纹识别算法(亲测代码可用)

python指纹识别算法

2301_76482796的博客 3079

SDU CS 期末考回忆版合集

删除原有分散的版本,合订起来画个。包括:机器学习、算法、图形学、操作系统、编译原理、软件工程、大数据分析管理、计算机体系结构等。

https://github.com/ZhaoyungZhang 6648

有趣的Python项目

分享一波Github上适合新手入门、又十分有趣的Python项目~ 1. 人脸识别 star:30.5k 最简洁的人脸识别库。可以使用Python和命令行工具提取、识别、操作人脸。其人脸识别是基于业内领先的C++开源库dlib中的深度学习模型,用Labeled Faces in the Wild人脸数据集进行测试,准确率高达99.38%。 而且有中文版README哟~ 2...

FireAny2010的专栏 2666

VS2022命令行编译C++报错?一招解决‘fatal error C1034: iostream: 不包括路径集‘

本文针对VS2022命令行编译C++时常见的'fatal error C1034: iostream: 不包括路径集'错误,深入剖析了其根源在于环境变量缺失。文章提供了永久配置用户环境变量(PATH、INCLUDE、LIB)的一劳永逸解决方案,确保在任何终端中都能直接使用cl命令进行编译,并给出了进阶配置与常见错误排查指南。

weixin_29011667的博客 304

5 个有趣的 Python 开源项目「GitHub 热点速览」

本期,我从上周的开源热搜项目中精心挑选了 5 个有趣、好玩的 Python 开源项目。首先是 PyScript,它可以让你直接在浏览器中运行 Python 代码,不仅支持在 HTML 中嵌入,还能安装第三方库。然后是用 Python 写的“魔法虫洞” magic-wormhole,这是一个无需服务器、通过一条命令就能安全传输文件的工具。增强 LLM 上下文连续性的 Python 库 mem0,用它...

HelloGitHub 的博客 1639

构建多节点AI代理网络:OpenClaw协同框架与实战部署指南

在分布式系统与AI代理技术领域,多节点协同是提升智能体能力与扩展性的核心挑战。其原理在于通过设计清晰的通信协议与数据同步机制,使分散的智能体能够共享状态、知识与技能,从而实现1+1>2的群体智能。这一技术价值在于突破了单点AI的能力上限,为构建复杂、鲁棒且可扩展的自动化系统提供了基础。典型的应用场景包括跨设备任务编排、企业级工作流自动化以及大规模AI代理集群的管理。本文聚焦于OpenClaw这一开源AI代理框架,深入探讨如何利用模块化设计(如网状网络与任务控制中心)实现记忆共享与统一调度,解决多网关协同中的

weixin_42521032的博客 298

RK3568平台开发系列讲解:Linux wifi的调试

查询结果中state为ENABLE,表示hostapd程序启用成功。首先查看设备是否存在。

内核笔记 166

练手必备!Python编程实战—23个有趣的实战项目带你快速进阶

最近知乎给我推荐了一个问题,是这样的已经有6.4W关注,700W次浏览,回答都有450条了,本来遇到这种问题我是不会回答的,毕竟已经有太多人给出了答案,我再去回答就没什么意义了。但想了想确实有很多刚学Python的并不清楚从哪里去找项目来练手,于是就有了这篇文章,基于这个目的,我也是找了好久,最后还是选择了分享这份手册,毕竟里面有细致的讲解,确实更适合练手一些。ps:本来是在git上找项目的,但当我拿给一个小伙伴后,他告诉我玩不转git,面对上面的项目更是无从下手,不知道该做什么,很迷茫…

公众号:该用户快成仙了 2085

.Net如何使用Web API实现数据交互?

数据模型代表了要交互的数据结构。例如,假设我们要创建一个简单的图书管理系统,我们可以定义一个Book类作为数据模型。set;set;set;

Code365 258

Python语法实战:用5个项目掌握核心语法点

作为一个Python学习者,最有效的学习方法就是通过实际项目来掌握语法。今天我想分享5个实战项目,每个项目都聚焦不同的Python核心语法点,帮助大家从实践中学习。平台内置的DeepSeek模型还能帮助检查代码质量,给出优化建议,对初学者特别友好。这些项目从构思到实现,再到最终部署上线,整个过程都非常顺畅。比如Flask项目可以直接部署成可访问的Web服务,省去了配置环境的麻烦。通过这个项目,你会对Python的数据结构操作有更深的理解。这个项目能让你理解装饰器的强大功能和上下文管理的设计思想。

NightshadeRaven21的博客 971

PointPillars代码详解及实现

SourceURL:file://文字文稿1和2D图像的深度学习目标检测很不相同,点云数据具有两个显著特征,为了将图像领域卷积神经网络做模式识别的经验引入三维点云中,一些深度学习方法采用了三维卷积方法或者是将点云投射为2维深度图,还有一类方法是使用鸟瞰视角Bird’s Eye View,来组织点云数据的输入,相比于2维深度图,鸟瞰图不存在遮挡问题但是数据分布更加稀疏造成网络特征学习效率低下。

m0_47313541的博客 661

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

【Python】快速入门Python一天学完基础语法

快速入门python 1. 数据类型与变量:元组、字典、拆包等 2. 基础运算与控制流程 3. 方法/函数、异常处理 4. 面向对象

CoderSharry的博客 2349

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

AI如何帮你快速掌握Python语法?快马平台实战

函数是编程中的重要概念。通过输入"写一个计算两数之和的函数",AI会生成包含函数定义、参数和返回值的完整示例。更复杂的需求,比如"写一个函数,接收列表作为参数,返回列表中的最大值"也能轻松实现。这种方式让抽象的函数概念变得具体可操作。

GoldEagle19的博客 884

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

一些有趣的python代码,python有趣的小项目

大家好,小编来为大家解答以下问题,一些有趣的python代码,python有趣的小项目,现在让我们一起来看看吧!

S1112_的博客 943

AI如何帮你快速修复Python语法错误?

在实际使用InsCode(快马)平台的过程中,我发现它的AI辅助功能真的能大幅提升调试效率。特别是对于这类基础但耗时的错误,AI几乎可以做到秒级定位和修复。而且平台还支持一键部署修复后的代码,验证修改效果,这对开发者来说非常方便。如果你也经常被Python语法错误困扰,不妨试试这类AI辅助工具,相信会给你带来全新的编程体验。

BlackironPanther23的博客 955

python有什么好玩的项目,一些有趣的python代码

大家好,小编来为大家解答以下问题,python有什么好玩的项目,一些有趣的python代码,今天让我们一起来看看吧!

2401_84667974的博客 844

python有趣的小项目-有趣的十个Python实战项目,让你瞬间爱上Python!

前言Python 是一种极具可读性和通用性的编程语言。Python 这个名字的灵感来自于英国喜剧团体 Monty Python,它的开发团队有一个重要的基础目标,就是使语言使用起来很有趣。Python 易于设置,并且是用相对直接的风格来编写,对错误会提供即时反馈,对初学者而言是个很好的选择。Python 是一种多范式语言,也就是说,它支持多种编程风格,包括脚本和面向对象,这使得它适用于通用目的。随...

weixin_37988176的博客 504
上一篇: 25道Python练手题(附详细答案),赶紧收藏!python入门
下一篇: Python应用领域有哪些?(python学习方向、高手进阶必看)
Python_9521
博客等级 码龄4年 38粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值