python系统之综合案例:用python打造智能诗词生成助手

不为失败找理由,只为成功找方法。所有的不甘,因为还心存梦想,所以在你放弃之前,好好拼一把,只怕心老,不怕路长。

python系列之综合案例

  • 前言
  • 一、项目描述
  • 二、项目需求
  • 三、 项目实现
    • 1、开发准备
    • 2、代码实现
  • 四、代码解读
    • 1、变量与数据类型
    • 2、运算符
    • 3、输入输出语句
    • 4、控制流程语句
    • 5、函数
    • 6、高阶函数
  • 五、总结

python系列前期章节

  1. python系列之注释与变量
  2. python系列之输入输出语句与数据类型
  3. python系列之运算符
  4. python系列之控制流程语句
  5. python系列之字符串
  6. python系列之列表
  7. python系列之元组
  8. python系列之字典
  9. python系列之集合
  10. python系列之函数基础
  11. python系列之函数进阶

前言

       本章是python系列的第12章,前面几章已经学习了很多的python基础知识点,比如最开始的变量、注释、运算符到控制语句、数据类型,然后函数等。每一章有都有实践案例,目的是以应用为驱动,由浅入深的学习。本章暂时不进行新的知识讲解,而要温故而知新,做一个小项目。那么废话不多说,直接开干~

一、项目描述

在诗词的世界里,每一首诗都承载着诗人独特的情感与意境。今天,我们就用Python打造一个别具一格的诗词生成助手,深入体验Python基础语法和高阶特性的魅力。项目名称为 智能诗词生成助手

二、项目需求

我们要创建一个诗词生成助手,它能根据用户输入的季节和情感,生成与之匹配的简单诗词,帮助用户快速获取创作灵感。

三、 项目实现

1、开发准备

本项目在Python 3.7+环境下开发,代码使用PyCharm编辑器编写。你可根据实际需求,调整代码运行环境。

2、代码实现


#导入random模块,用于生成随机数,在选择诗词元素时增加随机性
import random#创建一个函数,让它根据输入的季节和情感,生成相应的诗词
def generate_poem(season, emotion):# 定义一些描述季节的词汇season_words = {"春天": ["嫩绿", "花香", "鸟鸣"],"夏天": ["烈日", "蝉鸣", "荷香"],"秋天": ["金黄", "落叶", "雁归"],"冬天": ["白雪", "寒风", "梅香"]}# 定义一些描述情感的词汇emotion_words = {"喜悦": ["欢快", "愉悦", "欣喜"],"悲伤": ["忧愁", "哀伤", "痛苦"],"平静": ["安宁", "静谧", "平和"]}# 使用高阶函数choice从季节和情感词汇中随机选择一个s_word = random.choice(season_words[season])e_word = random.choice(emotion_words[emotion])# 根据季节和情感组合生成诗词poem = f"{season}{ s_word},透着{ e_word}的气息。"return poem#获取用户输入的季节
while True:season = input("请输入季节(春天、夏天、秋天、冬天):")if season in ["春天", "夏天", "秋天", "冬天"]:breakprint("输入错误,请重新输入!")#获取用户输入的情感
while True:emotion = input("请输入情感(喜悦、悲伤、平静):")if emotion in ["喜悦", "悲伤", "平静"]:breakprint("输入错误,请重新输入!")#调用generate_poem函数生成诗词
result = generate_poem(season, emotion)
print("生成的诗词:", result)

参考运行结果:
运行结果

四、代码解读

1、变量与数据类型

在上述代码中, season_words 和 emotion_words 是字典类型的变量,分别用于存储描述季节和情感的词汇。 season 、 emotion 和 result 则是字符串类型变量,用于存储用户输入和生成的诗词。

2、运算符

这里虽没有复杂的数学运算,但赋值运算符 = 用于将值赋给变量,保证程序的顺利运行。

3、输入输出语句

input() 函数用于获取用户输入的季节和情感。 print() 函数负责输出提示信息和生成的诗词。

4、控制流程语句

while 循环用于验证用户输入是否正确。只有当用户输入正确的季节和情感时,循环才会结束,确保程序的健壮性。

5、函数

generate_poem() 是一个自定义函数,接受季节和情感作为参数,返回生成的诗词。它将复杂的诗词生成逻辑封装起来,提高了代码的可读性和可维护性。

6、高阶函数

random.choice() 属于高阶函数,它从序列中随机选择一个元素,在生成诗词时为诗词元素的选择增加了随机性。

五、总结

通过这个诗词生成助手项目,我们不仅巩固了Python的基础语法,还体验了高阶函数在实际项目中的应用。你可以发挥想象力,进一步优化这个项目,如增加更多的诗词元素、改进诗词的结构,使其生成更优美、更有韵味的诗词。希望大家能从这个项目中感受到Python的魅力,开启更多有趣的编程之旅!

本人学识浅薄,文章中有不足之处,还请各方道友在评论区留言,谢谢。

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

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

相关文章

Java常用工具算法-1--哈希算法(MD5,SHA家族,SHA-256,BLAKE2)

1、概述 哈希算法(Hash Algorithm),又称散列算法,是一种将任意长度的输入数据(明文)转换为固定长度的输出(哈希值/摘要)的数学算法。 哈希值通常被称为摘要(Digest&…

OpenMCU(五):STM32F103时钟树初始化分析

概述 本文主要描述了STM32F103初始化过程系统时钟的初始化,主要描述了系统时钟的初始化,AHB总线时钟,APB总线时钟等的初始化。 硬件板卡3d图 时钟树 STM32F103的时钟树,如下所示: 时钟源选择 从STM32F103的时钟树框图,我们可以…

【qt】文件类(QFile)

很高兴你能看到这篇文章,同时我的语雀文档也更新了许多嵌入式系列的学习笔记希望能帮到你 : https://www.yuque.com/alive-m4b9n 目录 QFile 主要功能QFile 操作步骤QFile 其他常用函数案例分析及实现功能一实现:打开文件并显示功能二实现:另…

基于AT89C52单片机的轮胎压力监测系统

点击链接获取Keil源码与Project Backups仿真图: https://download.csdn.net/download/qq_64505944/90545655?spm1001.2014.3001.5503 功能介绍: 采用MPX4115压力传感器进行轮胎压力检测;使用LCD液晶显示器显示轮胎压力;若压力过…

shell脚本--MySQL简单调用

实现功能 增 数据库的创建,数据表的创建已经实现 创建用户 删 删除数据库, 删除库下的某个表, 删除某个用户 改 暂无 查 查看所有的数据库, 查看某个库下的所有数据表, 查看某个表的结构, 查…

计算机网络 OSI参考模型

目录 OSS七层 OSI通信过程1 OSI通信过程2 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 OSS七层 OSI通信过程1 OSI通信过程2 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层

2025年华为HCIP题库分享

1101、 【拖拽题】OPSF邻接关系建立的过程中需要使用不同的报文,那么请分别将以下各个状态和该状态使用的报文联系起来。 答题格式为:11 22 33 43 正确答案:【12】【21】【24】【33】 解析: 建立邻居关系 RouterA的一个连接到广…

DIskgenius使用说明

文章目录 一、概述1. 软件简介2. 系统要求 二、核心功能1. 分区管理(1) 查看磁盘分区(2) 创建与删除分区(3) 调整分区大小(4) 格式化分区 2. 数据恢复(1) 恢复已删除文件(2) 恢复丢失分区(3) 恢复误格式化分区 3. 磁盘复制(1) 克隆磁盘(2) 磁盘镜像 4. 文件操作(1) 文件复制与移…

linux--------------进程控制(上)

1.进程创建 1.1fork函数初识 在linux中fork函数是⾮常重要的函数&#xff0c;它从已存在进程中创建⼀个新进程。新进程为⼦进程&#xff0c;⽽原进 程为⽗进程。 #include <unistd.h> pid_t fork(void); 返回值&#xff1a;⾃进程中返回0&#xff0c;⽗进程返回⼦进程id…

windows免密SSH连接 ubuntu教程

文章目录 前情提要step1. 在windows下生成SSH密钥step2. SSH公钥copy到ubuntu的~/.ssh/authorized_keys内step3. 修改文件权限&#xff08;这一步完成后就可以实现免密SSH连接了&#xff09; 前情提要 ubuntu下安装SSH服务 sudo apt-get install openssh-serverwindows下安装…

中级:数组算法面试题全解析

一、引言 在Java面试中&#xff0c;数组相关的算法题是考察候选人基础算法能力的常见类型。面试官通过这些问题了解候选人在面对具体问题时的逻辑思维和代码实现能力。本文将深入剖析常见的数组算法面试题&#xff0c;结合实际开发场景&#xff0c;帮助读者全面掌握这些知识点…

《Linux运维实战:Ubuntu 22.04配置pam实现密码复杂度策略》

总结&#xff1a;整理不易&#xff0c;如果对你有帮助&#xff0c;可否点赞关注一下&#xff1f; 更多详细内容请参考&#xff1a;Linux运维实战总结 一、背景信息 由于安全方面的考虑&#xff0c;先要求Ubuntu 22.04系统需配置密码复杂度策略&#xff0c;先要求如下&#xff1…

JavaScript数据结构

目录 JavaScript数据结构 一、基础数据结构 1. 数组&#xff08;Array&#xff09; 2. 对象&#xff08;Object&#xff09; 二、ES6 高级数据结构 1. Map 2. Set 3. WeakMap 与 WeakSet 三、类型化数组&#xff08;Typed Arrays&#xff09; 四、其他数据结构实现 …

魔改chromium——基础环境搭建

谷歌chromium环境要求详细文档 软件和环境要求&#xff0c;必须安装&#xff0c;硬性要求 系统环境&#xff1a;Windows 10&#xff0c;内存最小8GB&#xff0c;推荐16GB&#xff0c;NTFS格式磁盘最少100GB空间Git版本&#xff1a;安装最新版本即可&#xff0c;Git桌面端下载…

电子文档安全管理系统V6.0接口backup存在任意文件下载漏洞

免责声明&#xff1a;本号提供的网络安全信息仅供参考&#xff0c;不构成专业建议。作者不对任何由于使用本文信息而导致的直接或间接损害承担责任。如涉及侵权&#xff0c;请及时与我联系&#xff0c;我将尽快处理并删除相关内容。 漏洞描述 电子文档安全管理系统 V6.0 reso…

5.3 MVVM模型

一、MVVM的基本概念 MVVM的基本概念&#xff1a;Model、View、ViewModel 组件职责示例内容Model封装业务数据User类&#xff0c;包含姓名、年龄属性View负责UI呈现XAML界面&#xff0c;包含数据绑定ViewModel连接View和Model&#xff0c;处理视图逻辑MainViewModel包含命令和…

python采集淘宝拍立淘按图搜索API接口,json数据示例参考

以下是关于淘宝拍立淘按图搜索API接口的详细说明及JSON数据示例&#xff1a; 一、接口概述 淘宝拍立淘按图搜索API接口是淘宝开放平台提供的一项基于图像识别技术的服务&#xff0c;允许开发者通过上传商品图片&#xff0c;获取与图片相似或相同的商品列表。该接口广泛应用于…

每天学一个 Linux 命令(8):ls

大家好,欢迎来到《每天掌握一个Linux命令》系列。在这个系列中,我们将逐步学习并熟练掌握Linux命令,今天,我们要学习的命令是ls。 01 什么是ls命令 在Linux系统中,ls命令是“list”的缩写,其英文全称为“list directory contents”,即“列出目录内容”。该命令非常实用…

00.【Linux系统编程】 Linux初识(云服务器设置CentOS并使用、Xshell链接云服务器)

目录 一、华为云服务器免费体验申请 二、Xshell远程链接创建好的华为云服务器 2.1 下载Xshell 2.2 Xshell远程连接华为云服务器 一、华为云服务器免费体验申请 华为云官网 1. 进入华为云官网&#xff0c;最上面一栏点活动&#xff0c;并进入免费体验中心。 2. 找到含有“…

arm非对齐访问编译器选项

gcc编译选项&#xff1a; -munaligned-access gcc编译选项&#xff1a; -mno-unaligned-access Enables (or disables) reading and writing of 16- and 32- bit values from addresses that are not 16- or 32- bit aligned. By default unaligned access is disabled for…