在数字时代的浪潮中,诗歌作为一种古老的艺术形式,依然散发着独特的魅力,而对于热爱编程的我们来说,将诗歌与编程相结合,创建一个Python诗库,无疑是一次既有趣又富有挑战性的尝试,下面,就让我们一起如何用Python搭建一个诗库,让代码与诗意同行。
我们需要明确诗库的基本功能,一个基本的诗库应该能够存储诗歌、检索诗歌、展示诗歌,并且能够根据用户的输入生成诗歌,这些功能可以通过Python的几个强大库来实现,比如sqlite3用于数据库操作,random用于随机选择诗歌,以及nltk(自然语言处理工具包)用于诗歌生成。
创建数据库
我们可以使用Python的sqlite3库来创建一个本地数据库,用于存储诗歌,我们需要定义一个表格来存储诗歌的相关信息,比如标题、作者、内容等。
import sqlite3
conn = sqlite3.connect('poetry.db')
c = conn.cursor()
创建表格
c.execute('''CREATE TABLE IF NOT EXISTS poems
(title text, author text, content text)''')
提交事务
conn.commit()
conn.close()插入诗歌
我们需要编写一个函数,用于将诗歌插入到数据库中。
def insert_poem(title, author, content):
conn = sqlite3.connect('poetry.db')
c = conn.cursor()
c.execute("INSERT INTO poems VALUES (?, ?, ?)", (title, author, content))
conn.commit()
conn.close()检索诗歌
用户可能想要根据标题、作者或者关键字来检索诗歌,我们可以编写一个函数来实现这个功能。
def search_poems(keyword):
conn = sqlite3.connect('poetry.db')
c = conn.cursor()
c.execute("SELECT * FROM poems WHERE title LIKE ? OR author LIKE ? OR content LIKE ?", ('%'+keyword+'%', '%'+keyword+'%', '%'+keyword+'%'))
poems = c.fetchall()
conn.close()
return poems展示诗歌
我们可以编写一个函数,用于展示检索到的诗歌。
def display_poems(poems):
for poem in poems:
print(f"标题:{poem[0]}, 作者:{poem[1]}, 内容:{poem[2]}")生成诗歌
使用nltk库,我们可以编写一个简单的诗歌生成器,这里我们使用一个简单的方法,通过随机选择词组来生成诗歌。
import nltk
from nltk.corpus import gutenberg
nltk.download('gutenberg')
def generate_poem():
corpus = gutenberg.words('austen-persuasion.txt')
poem = []
for _ in range(10): # 假设我们生成一首10行的诗歌
line = ' '.join(random.choice(corpus) for _ in range(5)) # 每行5个词
poem.append(line)
return '
'.join(poem)整合功能
我们可以将这些功能整合到一个简单的用户界面中,让用户可以输入关键词检索诗歌,也可以生成新的诗歌。
def main():
while True:
print("1. 插入诗歌
2、检索诗歌
3、生成诗歌
4、退出")
choice = input("请输入选项:")
if choice == '1':
title = input("请输入诗歌标题:")
author = input("请输入作者:")
content = input("请输入诗歌内容:")
insert_poem(title, author, content)
elif choice == '2':
keyword = input("请输入检索关键词:")
poems = search_poems(keyword)
display_poems(poems)
elif choice == '3':
print("生成的诗歌:")
print(generate_poem())
elif choice == '4':
break
else:
print("无效选项,请重新输入。")
if __name__ == "__main__":
main()通过上述步骤,我们就可以搭建一个基本的Python诗库,这个诗库不仅可以存储和检索诗歌,还可以生成新的诗歌,为诗歌爱好者提供了一个全新的互动平台,随着技术的不断进步,我们还可以加入更多的功能,比如自然语言处理、机器学习等,让诗库更加智能和有趣。



还没有评论,来说两句吧...