Python学习过程 您所在的位置:网站首页 静成语接龙怎么接 Python学习过程

Python学习过程

2023-06-08 06:39| 来源: 网络整理| 查看: 265

成语来源于我国古代著作和历史故事,它们的构成简单,意思却很精辟,是我们中华文化的一大特色。在成语中还有一个叫成语接龙的传统文字游戏,是一个益智游戏。我们来试着用python制作成语接龙游戏.

上一次我们爬取了成语,现在我们来把它放进数据库内, 为了我们查找方便我决定把诗句放到数据库里面, python中使用简便的首推sqlite,首先import sqlite3来添加sqlite模块,

conn = sqlite3.connect("chengyu.db")来连接数据库, 使用 sqlite3 的 connect 函数可以创建数据库或者连接数据库, 如果这个数据库存在,就连接这个数据库,如果这个库不存在,就创建数据库。 小括号里的是数据库名。我们把这个保存在变量 conn 里,这个变量名可以自己起. 以获取的四字成语来说,我们就简单的取个表名为4,弄一个id为主键自动添加,然后依次建立字段名头,成语,尾 这样我们就可以直接索引头尾来进行成语接龙了.

conn.execute(""" CREATE CREATE TABLE IF NOT EXISTS "main"."4" ( "id" integer NOT NULL PRIMARY KEY AUTOINCREMENT , "tou" TEXT NOT NULL, "chengyu" TEXT NOT NULL, "wei" TEXT NOT NULL, ); """)

在查询语句中,我们可以定义为只有当该表不存在的情况下才会创建新表。你可以在查询语句中的表名之前使用 IF NOT EXISTS 来创建新表。 数据库表创建好了之后,我们来添加记录,把成语丢进去.

首先处理好爬取的成语文字,比如去除空格、去掉换行符、过滤空字符、长度为4个字符什么的, 我们创建的数据库表有三个字段头,成语,尾,那么把成语分开存放在list里面方便快速存入数据库

def chengyu_split(_str): _str = _str.replace(" ", "") _str = re.sub("\n|\r|\t", '', _str) list_sp = re.split('[,。?;]', _str) list_sp = list(filter(None, list_sp)) # 过滤空字符 list_todb = [] for re_str in list_sp: print(re_str) if len(re_str) != 4: break tmp = (re_str[0], re_str, re_str[-1]) list_todb.append(tmp) conn.executemany('''INSERT INTO "main"."4" ("tou", "chengyu", "wei") VALUES (?,?,?)''', list_todb) conn.commit()

分开存放后的list打印出来是这样的

"[('故', '故我依然', '然'), ('官, '官场如戏', '戏']"

那么我们就用conn.executemany批量插入.使用 .executemany() 方法,该方法的第二个参数是一个元组列表,包含了我们要插入的数据,而执行后应该.commit(),每次完成一组一个或多个应该以原子方式执行的查询(即,全部执行,否则都不执行)。

conn.executemany( '''INSERT INTO "main"."5"("tou", "chengyu", "wei") VALUES (?,?,?)''', list_todb) conn.commit()

这样我们就把数据插入数据库中了, 我们查询一下看看数据进去没有 print(conn.execute("select * from '5'").fetchall())

数据库打印结果为:[(348, '哀', '哀思如潮', '潮'), (349, '鞍', '鞍前马后', '后'),] 下次我们来进行索引,可以试着生成成语接龙游戏了.



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有