前言
每次看新闻,会有一些社会新闻说某某某犯了什么法,第几几条。。。。
但是对于我一个没专门学过法律的人来说,只能知道个大概,想了解具体点的,每次都要去百度查。
所以我就在想,为什么我不能写一个程序,帮助我了解法律条文,不要求功能多强大,只求看新闻的时候多了解些信息
环境
- 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)