基于Python制作一个多进制转换工具
程序员文章站
2022-03-02 12:28:30
目录前言主要步骤完整代码前言学习资料下载链接提取码:tha8 进制转换计算工具含源文件主要步骤导入模块import tkinterfrom tkinter import *import tkinter...
前言
学习资料下载链接 提取码:tha8 进制转换计算工具含源文件
主要步骤
导入模块
import tkinter from tkinter import * import tkinter as tk from tkinter.ttk import *
整个框架的主结构
root = tk() root.title('贱工坊-进制转换计算') # 程序的标题名称 root.geometry("580x400+512+288") # 窗口的大小及页面的显示位置 root.resizable(false, false) # 固定页面不可放大缩小 root.iconbitmap("picture.ico") # 程序的图标
gui框架插入图片,视觉感受
canvas = tkinter.canvas(root, bg="#ebebeb", height=400, width=700, borderwidth=-3) # 创建画布 canvas.pack(side='top') # 放置画布(为上端) try: image_file = tkinter.photoimage(file="./chart.png") # 加载图片文件 canvas.create_image(0, 0, anchor='nw', image=image_file) # 将图片置于画布上 except: pass
信息输入框
# 信息输入 var_ = tkinter.stringvar() input_var_ = tk.entry(root,width=34,textvariable=var_, font=('微软雅黑', 10),bg='#ebebeb',fg='red', borderwidth=0.7) input_var_.place(x=10, y=4)
信息输出框
# 二进制 var_2bin = tkinter.stringvar() input_2bin = tk.entry(root,width=23,textvariable=var_2bin, font=('微软雅黑', 10),bg='#ebebeb',fg='red', borderwidth=0.7) input_2bin.place(x=16, y=200) # 八进制 var_8oct = tkinter.stringvar() input_8oct = tk.entry(root,width=24,textvariable=var_8oct, font=('微软雅黑', 10),bg='#ebebeb',fg='red', borderwidth=0.7) input_8oct.place(x=194, y=240) # 十进制 var_10int = tkinter.stringvar() input_10int = tk.entry(root,width=23,textvariable=var_10int, font=('微软雅黑', 10),bg='#ebebeb',fg='red', borderwidth=0.7) input_10int.place(x=380, y=200) # 十六进制 var_16hex = tkinter.stringvar() input_16hex = tk.entry(root,width=23,textvariable=var_16hex, font=('微软雅黑', 10),bg='#ebebeb',fg='red', borderwidth=0.7) input_16hex.place(x=70, y=300) # 三十二进制 var_32basen = tkinter.stringvar() input_32basen = tk.entry(root,width=23,textvariable=var_32basen, font=('微软雅黑', 10),bg='#ebebeb',fg='red', borderwidth=0.7) input_32basen.place(x=326, y=300)
用来清空输出框
# 清空 def cls(): input_2bin.delete(0, 'end') input_8oct.delete(0, 'end') input_10int.delete(0, 'end') input_16hex.delete(0, 'end') input_32basen.delete(0, 'end')
转换数据的主要核心,bin、oct、int、hex,
# 二进制转换 def bin2(): cls() try: input_2bin.insert('end',bin(int(var_.get(), 2))) # 2进制 转 2进制 except: input_2bin.insert('end','转换失败') try: input_8oct.insert('end',oct(int(var_.get(), 2))) # 2进制 转 8进制 except: input_8oct.insert('end','转换失败') try: input_10int.insert('end',str(int(var_.get(), 2))) # 2进制 转 10进制 except: input_10int.insert('end','转换失败') try: input_16hex.insert('end',hex(int(var_.get(), 2))) # 2进制 转 16进制 except: input_16hex.insert('end','转换失败') input_32basen.insert('end','转换失败') # 四进制转换 def bin4(): cls() try: input_2bin.insert('end',bin(int(var_.get(), 4))) # 4进制 转 2进制 except: input_2bin.insert('end','转换失败') try: input_8oct.insert('end',oct(int(var_.get(), 4))) # 4进制 转 8进制 except: input_8oct.insert('end','转换失败') try: input_10int.insert('end',str(int(var_.get(), 4))) # 4进制 转 10进制 except: input_10int.insert('end','转换失败') try: input_16hex.insert('end',hex(int(var_.get(), 4))) # 4进制 转 16进制 except: input_16hex.insert('end','转换失败') input_32basen.insert('end','转换失败') # 八进制转换 def oct8(): cls() try: input_2bin.insert('end',bin(int(var_.get(), 8))) # 8进制 转 2进制 except: input_2bin.insert('end','转换失败') try: input_8oct.insert('end',oct(int(var_.get(), 8))) # 8进制 转 8进制 except: input_8oct.insert('end','转换失败') try: input_10int.insert('end',str(int(var_.get(), 8))) # 8进制 转 10进制 except: input_10int.insert('end','转换失败') try: input_16hex.insert('end',hex(int(var_.get(), 8))) # 8进制 转 16进制 except: input_16hex.insert('end','转换失败') input_32basen.insert('end','转换失败') # 十进制转换 def int10(): cls() try: input_2bin.insert('end',bin(int(var_.get(), 10))) # 10进制 转 2进制 except: input_2bin.insert('end','转换失败') try: input_8oct.insert('end',oct(int(var_.get(), 10))) # 10进制 转 8进制 except: input_8oct.insert('end','转换失败') try: input_10int.insert('end',str(int(var_.get(), 10))) # 10进制 转 10进制 except: input_10int.insert('end','转换失败') try: input_16hex.insert('end',hex(int(var_.get(), 10))) # 10进制 转 16进制 except: input_16hex.insert('end','转换失败') def basen(num, b): return ((num == 0) and "0") or \ (basen(num // b, b).lstrip("0") + "0123456789abcdefghijklmnopqrstuvwxyz"[num % b]) try: input_32basen.insert('end',basen(int(var_.get()), 32)) # 10进制 转 32进制 except: input_32basen.insert('end','转换失败') # 十六进制转换 def hex16(): cls() try: input_2bin.insert('end',bin(int(var_.get(), 16))) # 16进制 转 2进制 except: input_2bin.insert('end','转换失败') try: input_8oct.insert('end',oct(int(var_.get(), 16))) # 16进制 转 8进制 except: input_8oct.insert('end','转换失败') try: input_10int.insert('end',str(int(var_.get(), 16))) # 16进制 转 10进制 except: input_10int.insert('end','转换失败') try: input_16hex.insert('end',hex(int(var_.get(), 16))) # 16进制 转 16进制 except: input_16hex.insert('end','转换失败') input_32basen.insert('end','转换失败') # 十六进制转换 def basen32(): cls() try: input_2bin.insert('end',bin(int(var_.get(), 32))) # 32进制 转 2进制 except: input_2bin.insert('end','转换失败') try: input_8oct.insert('end',oct(int(var_.get(), 32))) # 32进制 转 8进制 except: input_8oct.insert('end','转换失败') try: input_10int.insert('end',str(int(var_.get(), 32))) # 32进制 转 10进制 except: input_10int.insert('end','转换失败') try: input_16hex.insert('end',hex(int(var_.get(), 32))) # 32进制 转 16进制 except: input_16hex.insert('end','转换失败') input_32basen.insert('end','转换失败')
按钮插入
button(root, text='二进制转换',command=bin2).place(x=13, y=30) button(root, text='四进制转换',command=bin4).place(x=103, y=30) button(root, text='八进制转换',command=oct8).place(x=193, y=30) button(root, text='十进制转换',command=int10).place(x=13, y=60) button(root, text='十六进制转换',command=hex16).place(x=103, y=60) button(root, text='三十二进制转',command=basen32).place(x=193, y=60)
不仅好用,还可以装逼,可将你的qq号转为16进制用qq进行登录,装逼再好不过了
看效果:已打包
上方有链接可供下载
完整代码
import tkinter from tkinter import * import tkinter as tk from tkinter.ttk import * root = tk() root.title('贱工坊-进制转换计算') # 程序的标题名称 root.geometry("580x400+512+288") # 窗口的大小及页面的显示位置 root.resizable(false, false) # 固定页面不可放大缩小 root.iconbitmap("picture.ico") # 程序的图标 canvas = tkinter.canvas(root, bg="#ebebeb", height=400, width=700, borderwidth=-3) # 创建画布 canvas.pack(side='top') # 放置画布(为上端) try: image_file = tkinter.photoimage(file="./chart.png") # 加载图片文件 canvas.create_image(0, 0, anchor='nw', image=image_file) # 将图片置于画布上 except: pass # 信息输入 var_ = tkinter.stringvar() input_var_ = tk.entry(root,width=34,textvariable=var_, font=('微软雅黑', 10),bg='#ebebeb',fg='red', borderwidth=0.7) input_var_.place(x=10, y=4) # 二进制 var_2bin = tkinter.stringvar() input_2bin = tk.entry(root,width=23,textvariable=var_2bin, font=('微软雅黑', 10),bg='#ebebeb',fg='red', borderwidth=0.7) input_2bin.place(x=16, y=200) # 八进制 var_8oct = tkinter.stringvar() input_8oct = tk.entry(root,width=24,textvariable=var_8oct, font=('微软雅黑', 10),bg='#ebebeb',fg='red', borderwidth=0.7) input_8oct.place(x=194, y=240) # 十进制 var_10int = tkinter.stringvar() input_10int = tk.entry(root,width=23,textvariable=var_10int, font=('微软雅黑', 10),bg='#ebebeb',fg='red', borderwidth=0.7) input_10int.place(x=380, y=200) # 十六进制 var_16hex = tkinter.stringvar() input_16hex = tk.entry(root,width=23,textvariable=var_16hex, font=('微软雅黑', 10),bg='#ebebeb',fg='red', borderwidth=0.7) input_16hex.place(x=70, y=300) # 三十二进制 var_32basen = tkinter.stringvar() input_32basen = tk.entry(root,width=23,textvariable=var_32basen, font=('微软雅黑', 10),bg='#ebebeb',fg='red', borderwidth=0.7) input_32basen.place(x=326, y=300) base = [str(x) for x in range(10)] + [ chr(x) for x in range(ord('a'),ord('a')+6)] # 清空 def cls(): input_2bin.delete(0, 'end') input_8oct.delete(0, 'end') input_10int.delete(0, 'end') input_16hex.delete(0, 'end') input_32basen.delete(0, 'end') # 二进制转换 def bin2(): cls() try: input_2bin.insert('end',bin(int(var_.get(), 2))) # 2进制 转 2进制 except: input_2bin.insert('end','转换失败') try: input_8oct.insert('end',oct(int(var_.get(), 2))) # 2进制 转 8进制 except: input_8oct.insert('end','转换失败') try: input_10int.insert('end',str(int(var_.get(), 2))) # 2进制 转 10进制 except: input_10int.insert('end','转换失败') try: input_16hex.insert('end',hex(int(var_.get(), 2))) # 2进制 转 16进制 except: input_16hex.insert('end','转换失败') input_32basen.insert('end','转换失败') # 四进制转换 def bin4(): cls() try: input_2bin.insert('end',bin(int(var_.get(), 4))) # 4进制 转 2进制 except: input_2bin.insert('end','转换失败') try: input_8oct.insert('end',oct(int(var_.get(), 4))) # 4进制 转 8进制 except: input_8oct.insert('end','转换失败') try: input_10int.insert('end',str(int(var_.get(), 4))) # 4进制 转 10进制 except: input_10int.insert('end','转换失败') try: input_16hex.insert('end',hex(int(var_.get(), 4))) # 4进制 转 16进制 except: input_16hex.insert('end','转换失败') input_32basen.insert('end','转换失败') # 八进制转换 def oct8(): cls() try: input_2bin.insert('end',bin(int(var_.get(), 8))) # 8进制 转 2进制 except: input_2bin.insert('end','转换失败') try: input_8oct.insert('end',oct(int(var_.get(), 8))) # 8进制 转 8进制 except: input_8oct.insert('end','转换失败') try: input_10int.insert('end',str(int(var_.get(), 8))) # 8进制 转 10进制 except: input_10int.insert('end','转换失败') try: input_16hex.insert('end',hex(int(var_.get(), 8))) # 8进制 转 16进制 except: input_16hex.insert('end','转换失败') input_32basen.insert('end','转换失败') # 十进制转换 def int10(): cls() try: input_2bin.insert('end',bin(int(var_.get(), 10))) # 10进制 转 2进制 except: input_2bin.insert('end','转换失败') try: input_8oct.insert('end',oct(int(var_.get(), 10))) # 10进制 转 8进制 except: input_8oct.insert('end','转换失败') try: input_10int.insert('end',str(int(var_.get(), 10))) # 10进制 转 10进制 except: input_10int.insert('end','转换失败') try: input_16hex.insert('end',hex(int(var_.get(), 10))) # 10进制 转 16进制 except: input_16hex.insert('end','转换失败') def basen(num, b): return ((num == 0) and "0") or \ (basen(num // b, b).lstrip("0") + "0123456789abcdefghijklmnopqrstuvwxyz"[num % b]) try: input_32basen.insert('end',basen(int(var_.get()), 32)) # 10进制 转 32进制 except: input_32basen.insert('end','转换失败') # 十六进制转换 def hex16(): cls() try: input_2bin.insert('end',bin(int(var_.get(), 16))) # 16进制 转 2进制 except: input_2bin.insert('end','转换失败') try: input_8oct.insert('end',oct(int(var_.get(), 16))) # 16进制 转 8进制 except: input_8oct.insert('end','转换失败') try: input_10int.insert('end',str(int(var_.get(), 16))) # 16进制 转 10进制 except: input_10int.insert('end','转换失败') try: input_16hex.insert('end',hex(int(var_.get(), 16))) # 16进制 转 16进制 except: input_16hex.insert('end','转换失败') input_32basen.insert('end','转换失败') # 十六进制转换 def basen32(): cls() try: input_2bin.insert('end',bin(int(var_.get(), 32))) # 32进制 转 2进制 except: input_2bin.insert('end','转换失败') try: input_8oct.insert('end',oct(int(var_.get(), 32))) # 32进制 转 8进制 except: input_8oct.insert('end','转换失败') try: input_10int.insert('end',str(int(var_.get(), 32))) # 32进制 转 10进制 except: input_10int.insert('end','转换失败') try: input_16hex.insert('end',hex(int(var_.get(), 32))) # 32进制 转 16进制 except: input_16hex.insert('end','转换失败') input_32basen.insert('end','转换失败') button(root, text='二进制转换',command=bin2).place(x=13, y=30) button(root, text='四进制转换',command=bin4).place(x=103, y=30) button(root, text='八进制转换',command=oct8).place(x=193, y=30) button(root, text='十进制转换',command=int10).place(x=13, y=60) button(root, text='十六进制转换',command=hex16).place(x=103, y=60) button(root, text='三十二进制转',command=basen32).place(x=193, y=60) root.mainloop()
以上就是基于python制作一个多进制转换工具的详细内容,更多关于python多进制转换工具的资料请关注其它相关文章!
上一篇: Python绘制惊艳的桑基图的示例详解
下一篇: 将Python脚本打包成exe文件