千家信息网

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

发表于:2025-01-17 作者:千家信息网编辑
千家信息网最后更新 2025年01月17日,小编给大家分享一下如何使用Python制作一个多进制转换工具,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!前言学习资料下载
千家信息网最后更新 2025年01月17日如何使用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制作一个多进制转换工具"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

0