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.pswp.cn/web/74148.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/74148.shtml
英文地址,請注明出處:http://en.pswp.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…