千家信息网

如何使用Python制作一个多进制转换工具

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,小编给大家分享一下如何使用Python制作一个多进制转换工具,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!前言学习资料下载
千家信息网最后更新 2026年11月01日如何使用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安全错误 数据库的锁怎样保障安全 互联网科技股 互联网科技公司经营范围 高科技互联网 互联网科技视频 美国互联网黑科技 亿账通互联网科技 成都玖崟互联网科技有限公司乐商圈怎么样 宁波青枫互联网科技有限公司 阿里互联网科技公司 互联网经济与金融科技 天津腾达互联网科技有限公司 燊美集互联网科技有限公司 浙南科技城互联网大厦建设工程 广州新华互联网科技学校电竞方面 世界互联网领先科技成果获奖 区块链结合互联网科技 云南省自由互联网科技有限公司 悟空问答互联网科技 前海云享互联网科技 山东亿川互联网科技有限责任公司 湖北九亚互联网络科技有限公司 广东猪兼强互联网科技有限公司 华服互联网科技怎么样 腾讯阿里互联网科技 万达互联网科技 昭通云南众福互联网科技有限公司 彤创互联网科技有限公司 互联网科技大赛获奖感言 广州梦谷互联网科技有限公司领导 华人运通互联网科技公司
0