python制作【法律条文查询工具】妈妈再也不担心我法盲了

news2024/9/20 22:25:52

前言

嗨喽~大家好呀,这里是魔王呐 ❤ ~!

更多教程源码资料电子书: 点击此处跳转文末名片获取

环境准备8

  • Python 3.8

  • Pycharm

  • 《中华人民共和国刑法》

效果展示

打算做个简单的界面,主要功能就是查询法律条文

代码展示

查询器界面

设定界面大小

就简单的用tkinter做个界面就行

root = tk.Tk()
root.title('法律条文查询')
root.geometry('690x500+200+200')

root.mainloop()

查询框

input_frame = tk.Frame(root)
input_frame.pack(pady=20)

input_va = tk.StringVar()

tk.Label(input_frame, text='输入内容:', font=('黑体', 18), fg='#ed1c24').pack(side=tk.LEFT, padx=5)
tk.Entry(input_frame, relief='flat', textvariable=input_va, font=('黑体', 18)).pack(side=tk.LEFT, padx=5)
tk.Button(input_frame, text='查询', font=('黑体', 12), relief='flat', fg='#ffffff', bg='#ed1c24').pack(side=tk.LEFT, padx=5)

显示框

text = tk.Text(root, width=55, height=9, font=('黑体', 18))
text.pack()

标图图片

读取图片

img = tk.PhotoImage(file='img1.png')
tk.Label(root, image=img).pack()

查询器功能

读取相关法律条文

def Query():
    doc = Document('中华人民共和国刑法.docx')
    doc_content_list = []
    for paragraph in doc.paragraphs:
        if paragraph.text :
            doc_content_list.append(paragraph.text)
    doc_content = '\n'.join(doc_content_list)
    text.delete(1.0, 'end')
    word = input_va.get()
    # word = input('查询: ')
    num = ChangeNum(Number=word)
    word_1 = str(int(word) + 1)
    num_1 = ChangeNum(Number=word_1)
    result = f'第{num}条 ' + re.findall(f'第{num}条 (.*?)\n第{num_1}条', doc_content, re.S)[0]
    print(result)
    text.insert(tk.INSERT, result)

设置输入关键数字查询功能

def ChangeNum(Number):
    dit = {
        '0': '零',
        '1': '一',
        '2': '二',
        '3': '三',
        '4': '四',
        '5': '五',
        '6': '六',
        '7': '七',
        '8': '八',
        '9': '九',
    }
    if len(Number) == 1:
        num_list = dit[Number]
        return num_list
    elif  len(Number) == 2:
        if Number[-1] == '0':
            num_list = [dit[num] for num in Number]
            num_list.insert(1, '十')
            return ''.join(num_list)[:-1]
        elif Number[0] == '1':
            num_list = [dit[num] for num in Number]
            num_list.insert(1, '十')
            return ''.join(num_list)[1:]
        else:
            num_list = [dit[num] for num in Number]
            num_list.insert(1, '十')
            return ''.join(num_list)

    elif len(Number) == 3:
        if Number[-1] == '0' and Number[1] != '0':
            num_list = [dit[num] for num in Number]
            num_list.insert(1, '百')
            num_list.insert(-1, '十')
            return ''.join(num_list)[:-1]
        elif Number[-1] == '0' and Number[1] == '0':
            num_list = [dit[num] for num in Number]
            num_list.insert(1, '百')
            return ''.join(num_list)[:2]
        else:
            num_list = [dit[num] for num in Number]
            num_list.insert(1, '百')
            num_list.insert(-1, '十')
            return ''.join(num_list)

    elif len(Number) == 4:
        num_list = [dit[num] for num in Number]
        num_list.insert(1, '千')
        num_list.insert(3, '百')
        num_list.insert(-1, '十')
        return ''.join(num_list)

最后运行代码成品

尾语 💝

要成功,先发疯,下定决心往前冲!

学习是需要长期坚持的,一步一个脚印地走向未来!

未来的你一定会感谢今天学习的你。

—— 心灵鸡汤

本文章到这里就结束啦~感兴趣的小伙伴可以复制代码去试试哦 😝

👇问题解答 · 源码获取 · 技术交流 · 抱团学习请联系👇

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

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

相关文章

戴眼镜检测和识别2:Pytorch实现戴眼镜检测和识别(含戴眼镜数据集和训练代码)

Pytorch实现戴眼镜检测和识别(含戴眼镜数据集和训练代码) 目录 Pytorch实现戴眼镜检测和识别(含戴眼镜数据集和训练代码) 1.戴眼镜检测和识别方法 2.戴眼镜数据集 3.人脸检测模型 4.戴眼镜分类模型训练 (1)项目安装 (2)准…

反向代理和负载均衡有何区别?

反向代理和负载均衡是两种常用的网络架构模式,它们可以一起使用来提高网站的性能和可靠性,很多人会把这两者混淆,实际上,这两者的作用略有不同,今天我们就来详细说说具体区别是什么。一、反向代理(Reverse …

Python|贪心|数组|桶排序|二叉搜索树|贪心|单选记录:最大间距|将有序数组转换为二叉搜索树|跳跃游戏 II

1、最大间距(数组,桶排序) 给定一个无序的数组,找出数组在排序之后,相邻元素之间最大的差值。 如果数组元素个数小于 2,则返回 0。 示例 1: 输入: [3,6,9,1] 输出: 3 解释: 排序后的数组是 [1,3,6,9]…

三个案例场景带你掌握Cisco交换机VLAN互通

VLAN间路由的方式现在主流的组网主要是依靠三层交换机通过配置SVI接口【有的厂商叫VLANIF接口】,当然也有比较小型的网络,它就一个出口路由器可管理的二层交换机,还有一种更加差的,就是出口路由一个可管理的二层交换机&#xff0c…

描述一下锁的四种状态及升级过程?

文章目录1、锁的四种状态2、Java对象头描述3、锁的升级过程(Synchronized加锁/膨胀流程)1)简单过程如下图2)详细过程(1)偏向锁(2)轻量级锁(3)重量级锁4、拓展…

SpringBoot下的Spring框架学习(Tedu)——DAY02

SpringBoot下的Spring框架学习(Tedu)——DAY02 目录SpringBoot下的Spring框架学习(Tedu)——DAY02Spring框架学习1.1 Spring介绍1.2 知识铺垫1.2.1 编辑Dog类1.2.2 编辑Cat类1.2.3 编辑测试类User.java1.2.4 上述代码的总结1.3 面…

PPQ库中KLD算法实现代码解析

PPQ量化工具库KLD算法解析前言PPQ算法实现NVIDIA的PPT中KLD算法流程KLD算法PPQ实现版本PPQ与NVIDIA的区别:前言 这是对PPQ库中KLD算法实现代码解析,关于PPQ库安装与使用详情见专栏上一篇博客。 PPQ算法实现 nvidia发布的PPT:8-bit Inferen…

使用vue-element-admin进行二次开发

vue-element-admin 介绍 基于 vue 和 element-ui实现 的后台前端解决方案 集成方案: vue-element-admin基础模板: vue-admin-template桌面终端: electron-vue-adminTypescript 版: vue-typescript-admin-template Others: awesome-project 亮点 i18 国际化解决方案 动态路由…

射频功率放大器在辉光放电特征及风速测量原理中的应用

实验名称:辉光放电特征及风速测量原理研究方向:辉光放电测试设备:信号发生器、ATA-8202射频功率放大器,热成像仪、万用表、等离子体传感器实验过程:在等离子体形成条件和流场响应机制的基础上,可以明确影响…

node使用支付宝沙箱模拟支付-好文

首页打开支付宝官方进行登录:支付宝开放平台 (alipay.com)下载支付宝提供的秘钥转化工具:密钥工具下载 - 支付宝文档中心 (alipay.com)打开工具生成密码:然后在支付宝页面配置秘钥开始配置nodenpm init -y初始化,再npm i express跟…

<Linux>进程间通信--管道

前言😃😃😃进程间通信的方式管道 - Linux原生提供2SystemV - 多线程单机通信posix - 多线程网络通信这里我们主要是介绍一下管道一、生活和计算机中的管道😜生活中的管道特点都是有出口和入口的都是单向传输内容的(例如&#xff1…

雨水情测报设施包含哪些设备?

通常雨水情测报及大坝安全监测设施,主要包括:大坝安全监测终端、雨水情监测终端、GNSS监测站、雷达水位计、大坝安全监测平台、雨水情测报系统平台等产品。雨水情测报及大坝安全监测系统方案解决方案雨水情测报及大坝安全监测系统解决方案,主…

华为OD机试题,用 Java 解【字符串加密】问题

华为Od必看系列 华为OD机试 全流程解析+经验分享,题型分享,防作弊指南)华为od机试,独家整理 已参加机试人员的实战技巧华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典使用说明 参加华为od机试,一定要注意不…

Raft图文详解

Raft图文详解 refer to: Raft lecture (Raft user study) - YouTube Raft PDF Raft算法详解 - 知乎 (zhihu.com) 今天来详细介绍一下Raft协议 Raft是来解决公式问题的协议,那么什么是共识呢? 在分布式系统里面,consensus指的是多个节点对…

UEFI移植LVGL

自己组装过游戏主机的应该都有看到过,进入BIOS设置,酷炫的界面便呈现在眼前,而很多BIOS,使用的还是标准的界面。现在有个趋势,phoenix和insyde也在慢慢朝这种GUI界面发展,而AMI的使用C编写的界面已经非常完…

spring学习3.5

Bean是什么 Spring里面的Bean就类似是定义的一个组件,而这个组件的作用就是实现某个功能的,这里所定义的Bean就相当于给了你一个更为简便的方法来调用这个组件去实现你要完成的功能。 IoC是什么 谁控制谁,控制什么? 传统Java SE程…

11.SpringSecurity基于JWT实现Token的处理

SpringSecurity基于JWT实现Token的处理 前面介绍了手写单点登录和JWT的应用,本文结合SpringSecurity来介绍下在SpringBoot项目中基于SpringSecurity作为认证授权框架的情况下如何整合JWT来实现Token的处理。 一、认证思路分析 SpringSecurity主要是通过过滤器来实现…

【JavaWeb】从输入URL到展示出页面的过程

目录 DNS域名解析 检查hosts文件 查询缓存 查询本地DNS服务器 ​编辑查询根域名服务器等 三次握手建立连接 发送请求 响应请求 页面渲染 断开连接 这些过程简单的理解为先找到某人地址,给他发送消息可以去他家拿东西吗?他同意后拿到他的东西在…

33- PyTorch实现分类和线性回归 (PyTorch系列) (深度学习)

知识要点 pytorch最常见的创建模型的方式, 子类 读取数据: data pd.read_csv(./dataset/credit-a.csv, headerNone) 数据转换为tensor: X torch.from_numpy(X.values).type(torch.FloatTensor) 创建简单模型: from torch import nn model nn.Sequential(nn.Linear(15, 1…

Dockerfile简单使用入门

什么是 Dockerfile? Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。 docker build命令用于从Dockerfile构建映像。可以在docker build命令中使用-f标志指向文件系统中任何位置的Dockerfile。 例如&#xff1…