Python3 【函数】项目实战:5 个新颖的学习案例
Python3 【函数】项目实战:5 个新颖的学习案例
本文包含5编程学习案例,具体项目如下:
- 简易聊天机器人
- 待办事项提醒器
- 密码生成器
- 简易文本分析工具
- 简易文件加密解密工具
项目 1:简易聊天机器人
功能描述:
实现一个简易聊天机器人,根据用户输入返回预设的响应。
代码:
def chatbot_response(user_input):responses = {"hello": "Hello! How can I help you?","how are you": "I'm just a bot, but I'm doing great!","bye": "Goodbye! Have a nice day!","default": "I'm not sure how to respond to that."}return responses.get(user_input.lower(), responses["default"])# 测试案例
print(chatbot_response("Hello")) # 输出: Hello! How can I help you?
print(chatbot_response("How are you")) # 输出: I'm just a bot, but I'm doing great!
print(chatbot_response("What's your name?")) # 输出: I'm not sure how to respond to that.
执行结果:
Hello! How can I help you?
I'm just a bot, but I'm doing great!
I'm not sure how to respond to that.
项目 2:简易待办事项提醒器
功能描述:
实现一个简易待办事项提醒器,支持添加任务、设置提醒时间,并在指定时间提醒用户。
代码:
import time
from datetime import datetimedef add_task(tasks, task, reminder_time):tasks.append({"task": task, "reminder_time": reminder_time})def check_reminders(tasks):current_time = datetime.now()for task in tasks:if current_time >= task["reminder_time"]:print(f"Reminder: {task['task']} is due now!")tasks.remove(task)# 测试案例
tasks = []
add_task(tasks, "Buy groceries", datetime(2025, 1, 27, 10, 26)) # 设置提醒时间为 2025-1-27 10:26
add_task(tasks, "Read a book", datetime(2025, 1, 27, 10, 28)) # 设置提醒时间为 2025-1-27 10:28while tasks:check_reminders(tasks)time.sleep(60) # 每分钟检查一次
执行结果:
Reminder: Buy groceries is due now! # 当时间到达 2025-1-27 10:26 时输出
Reminder: Read a book is due now! # 当时间到达 2025-1-27 10:28 时输出
项目 3:密码生成器
功能描述:
实现一个密码生成器,生成包含大小写字母、数字和特殊字符的随机密码。
代码:
import random
import stringdef generate_password(length=12):characters = string.ascii_letters + string.digits + string.punctuationpassword = ''.join(random.choice(characters) for _ in range(length))return password# 测试案例
print("Generated Password:", generate_password()) # 输出: 随机生成的密码,如 "A1b@C3d$E5f^"
执行结果:
Generated Password: A1b@C3d$E5f^
项目 4:简易文本分析工具
功能描述:
实现一个简易文本分析工具,统计文本中的单词数量、字符数量和最常见的单词。
代码:
from collections import Counterdef analyze_text(text):words = text.split()word_count = len(words)char_count = len(text)most_common_word = Counter(words).most_common(1)[0][0]return {"word_count": word_count,"char_count": char_count,"most_common_word": most_common_word}# 测试案例
text = "This is a simple text analysis tool. It counts words and characters."
result = analyze_text(text)
print(result)
执行结果:
{'word_count': 12,'char_count': 68,'most_common_word': 'This'
}
项目 5:简易文件加密解密工具
功能描述:
实现一个简易文件加密解密工具,使用简单的字符替换算法对文件内容进行加密和解密。
代码:
def encrypt(text, key):encrypted_text = ""for char in text:encrypted_text += chr(ord(char) + key)return encrypted_textdef decrypt(encrypted_text, key):decrypted_text = ""for char in encrypted_text:decrypted_text += chr(ord(char) - key)return decrypted_textdef encrypt_file(input_file, output_file, key):with open(input_file, 'r') as file:text = file.read()encrypted_text = encrypt(text, key)with open(output_file, 'w') as file:file.write(encrypted_text)def decrypt_file(input_file, output_file, key):with open(input_file, 'r') as file:encrypted_text = file.read()decrypted_text = decrypt(encrypted_text, key)with open(output_file, 'w') as file:file.write(decrypted_text)# 测试案例
encrypt_file("input.txt", "encrypted.txt", 3) # 加密文件
decrypt_file("encrypted.txt", "decrypted.txt", 3) # 解密文件
执行结果:
- 生成
encrypted.txt,内容为加密后的文本。 - 生成
decrypted.txt,内容与原始文件input.txt相同。
总结
以上 5 个迷你项目涵盖了密码生成、待办事项提醒、聊天机器人、文本分析和文件加密解密等新颖且实用的功能。每个项目都附有测试案例和执行结果,适合用于学习和练习 Python 函数的综合应用。
相关文章:
Python3 【函数】项目实战:5 个新颖的学习案例
Python3 【函数】项目实战:5 个新颖的学习案例 本文包含5编程学习案例,具体项目如下: 简易聊天机器人待办事项提醒器密码生成器简易文本分析工具简易文件加密解密工具 项目 1:简易聊天机器人 功能描述: 实现一个简易…...
XSS 漏洞全面解析:原理、危害与防范
目录 前言编辑 漏洞原理 XSS 漏洞的危害 检测 XSS 漏洞的方法 防范 XSS 漏洞的措施 前言 在网络安全的复杂版图中,XSS 漏洞,即跨站脚本攻击(Cross - Site Scripting),是一类极为普遍且威胁巨大的安全隐患。随着互…...
从 GShard 到 DeepSeek-V3:回顾 MoE 大模型负载均衡策略演进
作者:小天狼星不来客 原文:https://zhuanlan.zhihu.com/p/19117825360 故事要从 GShard 说起——当时,人们意识到拥有数十亿甚至数万亿参数的模型可以通过某种形式的“稀疏化(sparsified)”来在保持高精度的同时加速训…...
【回溯+剪枝】回溯算法的概念 全排列问题
文章目录 46. 全排列Ⅰ. 什么是回溯算法❓❓❓Ⅱ. 回溯算法的应用1、组合问题2、排列问题3、子集问题 Ⅲ. 解题思路:回溯 剪枝 46. 全排列 46. 全排列 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 …...
Flutter解决macbook M芯片Android Studio中不显示IOS真机的问题
下载了最新的Android Studio LadyBug 下载了最新的xcode16.2 结果,只有安卓真机才在Android studio显示, IOS真机只在xcode显示 IOS真机不在android studio显示。 解决方法是: 在终端运行如下命令: sudo xcode-select -s /Applic…...
自签证书的dockerfile中from命令无法拉取镜像而docker的pull命令能拉取镜像
问题现象: docker pull images拉取镜像正常 dockerfile中的from命令拉取镜像就会报出证书错误。报错信息如下: [bjxtbwj-kvm-test-jenkins-6-243 ceshi_dockerfile]$ docker build . [] Building 0.4s (3/3) FINISHED …...
【MySQL】--- 复合查询 内外连接
Welcome to 9ilks Code World (๑•́ ₃ •̀๑) 个人主页: 9ilk (๑•́ ₃ •̀๑) 文章专栏: MySQL 🏠 基本查询回顾 假设有以下表结构: 查询工资高于500或岗位为MANAGER的雇员,同时还要满足他们的姓名首字母为…...
QT TLS initialization failed
qt使用QNetworkAccessManager下载文件(给出的链接可以在浏览器里面下载文件),下载失败, 提示“TLS initialization failed”通常是由于Qt在使用HTTPS进行文件下载时,未能正确初始化TLS(安全传输层协议&…...
系统学英语 — 句法 — 复合句
目录 文章目录 目录复合句型主语从句宾语从句表语从句定语从句状语从句同位语从句 复合句型 复合句型,即:从句。在英语中,除了谓语之外的所有句子成分都可以使用从句来充当。 主语从句 充当主语的句子,通常位于谓语之前&#x…...
指针的介绍2前
1.数组名的理解 #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h>int main() {int arr[] { 1,2,3,4,5,6,7,8,9 };printf("&arr[0] %p\n", &arr[0]);printf("arr %p\n", arr);return 0; } 观察得到,数组名就是数组首…...
16.Word:石油化工设备技术❗【28】
目录 题目 NO1.2 NO3 NO4 题目 NO1.2 F12:另存为将“Word素材.docx”文件另存为“Word. docx”(“docx”为文件扩展名) 光标来到表格上方→插入→形状→新建画布→单击选中→格式→高度/宽度(格式→大小对话框→取消勾选✔锁定…...
Python-基础环境(01) 虚拟环境,Python 基础环境之虚拟环境,一篇文章助你完全搞懂!
Python的虚拟环境是一种工具,它能够创建一个隔离的独立Python环境。每个虚拟环境都有自己独立的Python解释器和安装的包,不会与其他虚拟环境或系统的全局Python环境发生冲突。虚拟环境特别适用于以下情况: 项目隔离:不同的项目可…...
Dest1ny漏洞库:用友 U8-CRM 系统 ajaxgetborrowdata.php 存在 SQL 注入漏洞
用友U8-CRM系统ajaxgetborrowdata.php存在SQL注入漏洞,文件多个方法存在SQL注入漏洞,未经身份验证的攻击者通过漏洞执行任意SQL语句,调用xp_cmdshell写入后门文件,执行任意代码,从而获取到服务器权限。 hunter app.n…...
java.sql.Date 弃用分析与替代方案
引言 java.sql.Date 是 Java 标准库中的一个类,它继承自 java.util.Date,主要用于在 Java 应用程序与数据库之间进行日期数据的传输。然而,随着 Java 语言的发展,java.sql.Date 以及其父类 java.util.Date 逐渐被认为存在设计缺陷…...
HarmonyOS:状态管理最佳实践
一、概述 在声明式UI编程范式中,UI是应用程序状态的函数,应用程序状态的修改会更新相应的UI界面。ArkUI采用了MVVM模式,其中ViewModel将数据与视图绑定在一起,更新数据的时候直接更新视图。如下图所示: ArkUI的MVVM模式…...
如何提高新产品研发效率
优化研发流程、采用先进工具、提升团队协作、持续学习与改进,是提高新产品研发效率的关键。其中,优化研发流程尤为重要。通过简化流程,减少不必要的环节和复杂性,企业可以显著提升研发效率。例如,采用自动化测试工具和…...
MongoDB平替数据库对比
背景 项目一直是与实时在线监测相关,特点数据量大,读写操作大,所以选用的是MongoDB。但按趋势来讲,需要有一款国产数据库可替代,实现信创要求。选型对比如下 1. IoTDB 这款是由清华大学主导的开源时序数据库&#x…...
JavaScript系列(46)-- WebGL图形编程详解
JavaScript WebGL图形编程详解 🎨 今天,让我们深入探讨JavaScript的WebGL图形编程。WebGL是一种基于OpenGL ES的JavaScript API,它允许我们在浏览器中渲染高性能的2D和3D图形。 WebGL基础概念 🌟 💡 小知识ÿ…...
YOLO目标检测4
一. 参考资料 《YOLO目标检测》 by 杨建华博士 本篇文章的主要内容来自于这本书,只是作为学习记录进行分享。 二. 环境搭建 (1) ubuntu20.04 anaconda安装方法 (2) 搭建yolo训练环境 # 首先,我们建议使用Anaconda来创建一个conda的虚拟环境 conda cre…...
十三先天记
没有一刻,只有当下在我心里。我像星星之间的空间一样空虚。他们是我看到的第一件事,我知道的第一件事。 在接下来的时间里,我意识到我是谁,我是谁。我知道星星在我上方,星球的固体金属体在我脚下。这个支持我的世界是泰…...
从图像处理到推荐系统:特征值不等式在工程中的5个妙用
从图像处理到推荐系统:特征值不等式在工程中的5个妙用 在工程实践中,数学工具往往能带来意想不到的优化效果。特征值不等式作为线性代数中的重要结论,其应用范围远超理论推导,能解决图像处理、推荐系统等多个领域的实际问题。本文…...
PyTorch模型调试神器:用TensorBoard+torchsummary快速定位网络结构问题
PyTorch模型调试神器:用TensorBoardtorchsummary快速定位网络结构问题 当你在PyTorch中构建复杂的神经网络时,是否经常遇到以下困扰:模型训练时突然报出维度不匹配的错误,却不知道具体是哪一层出了问题?或者模型参数数…...
Ostrakon-VL-8B在VMware虚拟机中的一站式部署与性能调优
Ostrakon-VL-8B在VMware虚拟机中的一站式部署与性能调优 想在本地隔离环境里跑通一个强大的多模态大模型,比如Ostrakon-VL-8B,但又不想折腾物理机或者担心影响主系统?VMware虚拟机是个不错的选择。不过,在虚拟机里部署AI应用&…...
STM32F4 Flash读写避坑指南:如何安全存储关键数据(附完整代码)
STM32F4 Flash读写避坑指南:如何安全存储关键数据(附完整代码) 第一次在STM32F4上操作Flash时,我遇到了一个令人抓狂的问题——设备运行几小时后数据莫名其妙丢失。经过三天三夜的调试才发现,原来是在写入前忘记检查扇…...
Buzz:离线环境下音频转录与翻译的完整解决方案
Buzz:离线环境下音频转录与翻译的完整解决方案 【免费下载链接】buzz Buzz transcribes and translates audio offline on your personal computer. Powered by OpenAIs Whisper. 项目地址: https://gitcode.com/GitHub_Trending/buz/buzz 在当今信息驱动的工…...
化整为零、分而治之、异步编排:一文读懂现代并发的底层心法
LongAdder:化整为零,热点分散 在Java多线程编程中,原子变量(如AtomicLong)通过CAS操作实现线程安全的累加。然而,在高并发场景下,大量线程争抢同一原子变量会引发严重的缓存一致性问题。…...
别再死记硬背MVC了!通过Unity连连看实战,我搞懂了数据与UI分离的5个真实好处
从连连看实战看数据与UI分离的五大工程化收益 在游戏开发领域,设计模式常常被视为"高级概念"而被初学者敬而远之。但当我真正在Unity中实现一个简单的连连看游戏时,才深刻体会到MVC模式中数据与UI分离带来的实际价值。这不是教科书上的理论说教…...
SSD用久了为啥会变慢?深入NAND Flash的‘写放大’与‘磨损均衡’,教你看懂SMART数据避坑
SSD性能下降的真相:从写放大到磨损均衡的深度解析 你是否遇到过这样的困扰——新买的SSD速度飞快,但用了一段时间后,系统响应明显变慢,开机时间延长,文件传输速度大不如前?这种现象并非偶然,而是…...
OpCore-Simplify:一键自动化黑苹果配置,让复杂技术变得简单
OpCore-Simplify:一键自动化黑苹果配置,让复杂技术变得简单 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify OpCore-Simplify是…...
RAGFlow知识库配置与RAG流程优化实战
1. RAGFlow知识库配置详解 第一次接触RAGFlow知识库时,我被它强大的文档处理能力惊艳到了。记得当时处理一批科研论文PDF,传统方法提取的内容总是支离破碎,而RAGFlow的DeepDoc解析器完美保留了文档的图表和章节结构。下面我就把踩坑后总结的配…...
