【脚本项目源码】Python实现鲁迅名言查询系统

news2024/11/20 1:22:15

前言

本文给大家分享的是如何通过利用Python实现鲁迅名言查询系统,废话不多直接开整~

开发工具

Python版本: 3.6

相关模块:

PyQt5模块

fuzzywuzzy模块

环境搭建

安装Python并添加到环境变量,pip安装需要的相关模块即可。

文中实战教程,评论留言获取。

代码实现

简单的GUI

class GUI(QWidget):
	def __init__(self, parent=None):
		super().__init__()
		self.setWindowTitle('鲁迅名言查询-公众号:Python工程狮')
		self.setWindowIcon(QIcon('data/icon.png'))
		self.label1 = QLabel('句子:')
		self.line_edit = QLineEdit()
		self.label2 = QLabel('查询结果:')
		self.text = QTextEdit()
		self.button = QPushButton()
		self.button.setText('查询')
		self.cmb = QComboBox()
		self.cmb.setStyle(QStyleFactory.create('Fusion'))
		self.cmb.addItem('匹配度: 100%')
		self.cmb.addItem('匹配度: 90%')
		self.cmb.addItem('匹配度: 80%')
		self.cmb.addItem('匹配度: 70%')
		self.grid = QGridLayout()
		self.grid.setSpacing(12)
		self.grid.addWidget(self.label1, 1, 0)
		self.grid.addWidget(self.line_edit, 1, 1, 1, 38)
		self.grid.addWidget(self.button, 1, 39)
		self.grid.addWidget(self.label2, 2, 0)
		self.grid.addWidget(self.text, 2, 1, 1, 40)
		self.grid.addWidget(self.cmb, 1, 40)
		self.setLayout(self.grid)
		self.resize(600, 400)
		self.button.clicked.connect(self.inquiry)
		self.paragraphs = self.loadData('data/book.txt')

查询

def inquiry(self):
		sentence = self.line_edit.text()
		matched = []
		score_thresh = self.getScoreThresh()
		if not sentence:
			QMessageBox.warning(self, "Warning", '请先输入需要查询的鲁迅名言')
		else:
			for p in self.paragraphs:
				score = fuzz.partial_ratio(p, sentence)
				if score >= score_thresh and len(sentence) <= len(p):
					matched.append([score, p])
			infos = []
			for match in matched:
				infos.append('[匹配度]: %d\n[内容]: %s\n' % (match[0], match[1]))
			if not infos:
				infos.append('未匹配到任何相似度大于%d的句子.\n' % score_thresh)
			self.text.setText('\n\n\n'.join(infos)[:-1])

根据下拉框选项获取匹配度

def getScoreThresh(self):
		if self.cmb.currentIndex() == 0:
			return 100
		elif self.cmb.currentIndex() == 1:
			return 90
		elif self.cmb.currentIndex() == 2:
			return 80
		elif self.cmb.currentIndex() == 3:
			return 70

数据导入

def loadData(self, data_path):
		paragraphs = []
		with open(data_path, 'r', encoding='utf-8') as f:
			for line in f.readlines():
				if line.strip():
					paragraphs.append(line.strip('\n'))
		return paragraphs

运行

if __name__ == '__main__':
	app = QApplication(sys.argv)
	gui = GUI()
	gui.show()
	sys.exit(app.exec_())

结果展示

鲁迅名言查询系统

最后

为了感谢读者们,我想把我最近收藏的一些编程干货分享给大家,回馈每一个读者,希望能帮到你们。

里面有适合小白新手的全套教程给到大家~

快来和小鱼一起成长进步吧!

① 100+多本PythonPDF(主流和经典的书籍应该都有了)

② Python标准库(最全中文版)

③ 爬虫项目源码(四五十个有趣且经典的练手项目及源码)

④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)

⑤ Python学习路线图(告别不入流的学习)

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

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

相关文章

R语言使用最优聚类簇数k-medoids聚类进行客户细分

k-medoids聚类简介 k-medoids是另一种聚类算法&#xff0c;可用于在数据集中查找分组。k-medoids聚类与k-means聚类非常相似&#xff0c;除了一些区别。k-medoids聚类算法的优化功能与k-means略有不同。最近我们被客户要求撰写关于聚类的研究报告&#xff0c;包括一些图形和统…

【JavaWeb开发-Servlet】将项目部署在云服务器

目录 1、环境 &#xff08;1&#xff09;连接服务器 &#xff08;2&#xff09;安装JDK1.8​编辑 ①到官网下载环境 ②将压缩包上传至linux中 ③解压jdk压缩包 ④修改文件名 ⑤配置环境变量 &#xff08;3&#xff09;安装MySQL5.0 ①先下载MySQL的yum库 ②选择5.7发行版本…

基于C#+SQL Server(WinForm)学生选课及成绩查询管理系统【100010027】

学生选课及成绩查询管理系统的设计与开发 1、项目背景 学生选课及成绩查询系统是一个学校不可缺少的部分&#xff0c;传统的人工管理档案的方式存在着很多的缺点&#xff0c;如&#xff1a;效率低、保密性差等&#xff0c;所以开发一套综合教务系统管理软件很有必要&#xff…

Shell基础

获取命令结果$? 如果上一个命令是成功的则结果为0 否则为127 结果是 www.qfdu.com is down! EOF使用 sh 其实是bash的一个链接&#xff0c;本质上还是执行bash 然后脚本第一句表示使用什么执行器&#xff0c;如果写的是python但是你执行的时候不指定python会报错&#x…

Linux安装Mysql(图文解说详细版,安装包tar包版)

上次教大家用yum安装mysql https://blog.csdn.net/csdnerM/article/details/121095527&#xff0c; 结果还要小伙伴不知道tar包怎么安装&#xff0c;现在出个tar包安装的教程出来供大家参考 文章目录&#x1f3e2;1.官网下载tar包&#xff08;安装包&#xff09;&#x1f3e3;…

多个著名 Go 开源项目被放弃,做大开源不能用爱发电,更不能只靠自己!

大家好&#xff0c;我是煎鱼。相信关注我的许多同学都有接触 Go 语言的开发&#xff0c;甚至在企业中多有实践。那么你在日常开发中&#xff0c;势必会接触到 gorilla[1] 组织下的各个 Go 开源项目。如下图&#xff1a;gorilla/mux[2]&#xff1a;Star&#xff1a;17.9k。a pow…

VMWare复制CentOS虚拟机后无法联网

1. 现象描述 原来使用一个 CentOS 虚拟机&#xff0c;这里叫 CentOS_1。网络配置如下&#xff1a;VMWare软件设置 NAT 模式&#xff0c;虚拟机配置 DHCP 自动获取 IP &#xff0c;开机启动网络。可以正常联网 现在要重新配置一个虚拟机&#xff0c;环境同 CentOS_1。因此我直…

视频恢复软件哪个好用?推荐这几款恢复率高的软件

如果你意外删除了电脑保存的视频文件&#xff0c;无论是单击回收站“还原”还是通过电脑系统备份“还原”&#xff0c;它都无法恢复。如何解决这个问题&#xff1f;此时&#xff0c;你需要寻求文件删除恢复软件的帮助&#xff0c;推荐下面这几款恢复率高的视频恢复软件。如何操…

安卓讲课笔记6.3 使用SQLite数据库

文章目录零、本讲学习目标一、导入新课二、新课讲解&#xff08;一&#xff09;SQLite数据库1、SQLite构成2、SQLite数据类型3、SQLite数据库特点&#xff08;二&#xff09;使用SQLiteDatabase类操作数据库1、创建安卓应用2、准备图片素材3、字符串资源文件4、主布局资源文件5…

0停机迁移Nacos?Java字节码技术来帮忙

摘要&#xff1a;本文介绍如何将Spring Cloud应用从开源Consul无缝迁移至华为云Nacos。本文分享自华为云社区《0停机迁移Nacos&#xff1f;Java字节码技术来帮忙》&#xff0c;作者&#xff1a;华为云PaaS服务小智。 1.市场迁移云环境痛点 市场微服务迁移云环境难主要有以下几…

[ MySQL ] 使用Navicat进行MySQL数据库备份 / 还原(Part 2:备份.sql文件方式)

本文主要讲解如何用Navicat&#xff08;Navicat Premium &#xff0c;或者Navicat for mysql&#xff09;进行MySQL备份和恢复数据库&#xff08;利用.sql文件的方式&#xff09;。 关于MySQL数据库备份&#xff0c;本博客内主要相关文章有&#xff1a; [ MySQL ] 使用Navica…

兔子来源中性粒细胞膜

兔子来源中性粒细胞膜 1.按组成元素分 构成细胞膜的成分有磷脂&#xff0c;糖蛋白&#xff0c;糖脂和蛋白质。 2.按组成结构分 磷脂双分子层是构成细胞膜的基本支架。细胞膜的主要成分是蛋白质和脂质&#xff0c;含有少量糖类。其中部分脂质和糖类结合形成糖脂&#xff0c;部分…

“你家娃为什么这么爱看书?”只用3招,孩子秒变小书迷

我儿子从幼儿园带回来一个消息&#xff0c;说班上所有的孩子都在老师那里订课外书。我儿子立即向老师解释说&#xff1a;我不需要买书。我妈妈给我买了很多书。我家里有很多书。我每天都读。家长群里有家长艾特问我的孩子为什么这么喜欢读书。为什么孩子们喜欢读书&#xff0c;…

作业12:第七章课后题

目录习题7-1 在小批量梯度下降中&#xff0c;试分析为什么学习率要和批量大小成正比习题7-2 在Adam算法中&#xff0c;说明指数加权平均的偏差修正的合理性习题7-9 证明在标准的随机梯度下降中&#xff0c;权重衰减正则化和L_{2}正则化的效果相同.并分析这一结论在动量法和Adam…

【Vue2+Element ui通用后台】左侧菜单实现

文章目录主体布局搭建左侧菜单搭建左侧菜单跳转主体布局搭建 我们在 Container 布局容器&#xff0c;找到有左侧、头部、和主体部分的布局&#xff0c;直接复制代码到 Main.vue 中&#xff1a; <template><div><el-container><el-aside width"200p…

「从零入门推荐系统」06:推荐系统召回算法介绍

作者 | gongyouliu编辑 | gongyouliu我们在前面几章中介绍了推荐系统的一些基本概念&#xff0c;从本章开始我们会进入推荐系统的核心章节&#xff0c;也就是关于推荐算法部分的介绍。我们在第五章「推荐系统业务流程与架构」中讲到推荐系统一般会分为召回和排序两个阶段&#…

ADI Blackfin DSP处理器-BF533的开发详解38:图像处理专题-Sobel 算子边缘检测(含源代码)

硬件准备 ADSP-EDU-BF533&#xff1a;BF533开发板 AD-HP530ICE&#xff1a;ADI DSP仿真器 软件准备 Visual DSP软件 硬件链接 功能介绍 代码实现了 Sobel 算子的图像边缘检测&#xff0c;代码运行时&#xff0c;会通过文件系统打开工程文件根目下" …/ImageView"…

Java集合和常见数据结构以及泛型

Java集合和常见数据结构以及泛型集合概述Collection集合的体系特点Collection集合常用APICollection集合的遍历方式方法一&#xff1a;迭代器方法二&#xff1a;foreach/增强for循环方法三&#xff1a;lambda表达式Collection集合存储自定义类型的对象常见数据结构数据结构概述…

PDF格式如何转成Excel?这篇文章教会你如何转换

不知道在日常的办公中&#xff0c;大家有没有碰到过这样一个问题&#xff1a;当领导给你发个PDF文件后&#xff0c;要求你尽快的将PDF文件中的表格数据进行修改&#xff0c;但当你把PDF转换成Excel格式后&#xff0c;发现转换后的文件排版格式错乱的。可是截止时间的压迫和乱七…

[附源码]Python计算机毕业设计大学生日常行为评分管理系统Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…