如何使用Python制作一个多进制转换工具
发表于:2025-11-11 作者:千家信息网编辑
千家信息网最后更新 2025年11月11日,小编给大家分享一下如何使用Python制作一个多进制转换工具,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!前言学习资料下载
千家信息网最后更新 2025年11月11日如何使用Python制作一个多进制转换工具
小编给大家分享一下如何使用Python制作一个多进制转换工具,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
前言
学习资料下载链接 提取码:tha8 进制转换计算工具含源文件
主要步骤
导入模块
import tkinterfrom tkinter import *import tkinter as tkfrom 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 tkinterfrom tkinter import *import tkinter as tkfrom 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制作一个多进制转换工具"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
进制
微软
二进制
十六进制
八进制
十进制
画布
十进
图片
信息
程序
页面
工具
篇文章
输入
制作
上端
位置
内容
名称
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
深圳市臻品易麦网络技术有限公司长沙分公司
SQL数据库主要用途
db2 启动数据库
海尔集团软件开发收入
上门杀毒手机电脑网络安全
网络安全靠人民1500字
软件开发能同行业跳槽吗
宝安区服务器除尘设备
u8服务器连接数据库
模电数电对软件开发有影响吗
服务器密码安全管理制度
路由器wan口设置服务器无响应
网络技术都考啥
电力筑牢网络安全屏障
安卓小说阅读软件开发
腾讯云服务器怎么登陆
软件开发者需要具备什么能力
java桌面软件开发
泰拉瑞亚无人管理服务器
中国网络安全研究所
显卡软件开发
如何测试ntp服务器
大学学习网络安全
怎么做河南软件开发
网络安全周活动心得体会
靖远租房软件开发
北京软件开发优秀柚米科技
查服务器为什么地址会变动
pvsyst数据库
魔兽世界最平衡的服务器