溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何使用Python制作一個(gè)多進(jìn)制轉(zhuǎn)換工具

發(fā)布時(shí)間:2022-02-10 09:16:03 來源:億速云 閱讀:198 作者:小新 欄目:開發(fā)技術(shù)

小編給大家分享一下如何使用Python制作一個(gè)多進(jìn)制轉(zhuǎn)換工具,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

前言

如何使用Python制作一個(gè)多進(jìn)制轉(zhuǎn)換工具

學(xué)習(xí)資料下載鏈接 提取碼:tha8  進(jìn)制轉(zhuǎn)換計(jì)算工具含源文件

主要步驟

導(dǎo)入模塊

import tkinter
from tkinter import *
import tkinter as tk
from tkinter.ttk import *

整個(gè)框架的主結(jié)構(gòu)

root = Tk()
root.title('賤工坊-進(jìn)制轉(zhuǎn)換計(jì)算')  # 程序的標(biāo)題名稱
root.geometry("580x400+512+288")  # 窗口的大小及頁面的顯示位置
root.resizable(False, False)  # 固定頁面不可放大縮小
root.iconbitmap("picture.ico")  # 程序的圖標(biāo)

GUI框架插入圖片,視覺感受

canvas = tkinter.Canvas(root, bg="#ebebeb", height=400, width=700, borderwidth=-3)  # 創(chuàng)建畫布
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)

信息輸出框

# 二進(jìn)制
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)
 
# 八進(jìn)制
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)
 
# 十進(jìn)制
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)
 
# 十六進(jìn)制
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)
 
# 三十二進(jìn)制
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')

轉(zhuǎn)換數(shù)據(jù)的主要核心,bin、oct、int、hex,

# 二進(jìn)制轉(zhuǎn)換
def bin2():
    cls()
    try:
        input_2bin.insert('end',bin(int(var_.get(), 2)))  # 2進(jìn)制 轉(zhuǎn) 2進(jìn)制
    except:
        input_2bin.insert('end','轉(zhuǎn)換失敗')
 
    try:
        input_8oct.insert('end',oct(int(var_.get(), 2)))  # 2進(jìn)制 轉(zhuǎn) 8進(jìn)制
    except:
        input_8oct.insert('end','轉(zhuǎn)換失敗')
 
    try:
        input_10int.insert('end',str(int(var_.get(), 2)))  # 2進(jìn)制 轉(zhuǎn) 10進(jìn)制
    except:
        input_10int.insert('end','轉(zhuǎn)換失敗')
 
    try:
        input_16hex.insert('end',hex(int(var_.get(), 2)))  # 2進(jìn)制 轉(zhuǎn) 16進(jìn)制
    except:
        input_16hex.insert('end','轉(zhuǎn)換失敗')
 
    input_32baseN.insert('end','轉(zhuǎn)換失敗')
# 四進(jìn)制轉(zhuǎn)換
def bin4():
    cls()
    try:
        input_2bin.insert('end',bin(int(var_.get(), 4)))  # 4進(jìn)制 轉(zhuǎn) 2進(jìn)制
    except:
        input_2bin.insert('end','轉(zhuǎn)換失敗')
 
    try:
        input_8oct.insert('end',oct(int(var_.get(), 4)))  # 4進(jìn)制 轉(zhuǎn) 8進(jìn)制
    except:
        input_8oct.insert('end','轉(zhuǎn)換失敗')
 
    try:
        input_10int.insert('end',str(int(var_.get(), 4)))  # 4進(jìn)制 轉(zhuǎn) 10進(jìn)制
    except:
        input_10int.insert('end','轉(zhuǎn)換失敗')
 
    try:
        input_16hex.insert('end',hex(int(var_.get(), 4)))  # 4進(jìn)制 轉(zhuǎn) 16進(jìn)制
    except:
        input_16hex.insert('end','轉(zhuǎn)換失敗')
 
    input_32baseN.insert('end','轉(zhuǎn)換失敗')
# 八進(jìn)制轉(zhuǎn)換
def oct8():
    cls()
    try:
        input_2bin.insert('end',bin(int(var_.get(), 8)))  # 8進(jìn)制 轉(zhuǎn) 2進(jìn)制
    except:
        input_2bin.insert('end','轉(zhuǎn)換失敗')
 
    try:
        input_8oct.insert('end',oct(int(var_.get(), 8)))  # 8進(jìn)制 轉(zhuǎn) 8進(jìn)制
    except:
        input_8oct.insert('end','轉(zhuǎn)換失敗')
 
    try:
        input_10int.insert('end',str(int(var_.get(), 8)))  # 8進(jìn)制 轉(zhuǎn) 10進(jìn)制
    except:
        input_10int.insert('end','轉(zhuǎn)換失敗')
 
    try:
        input_16hex.insert('end',hex(int(var_.get(), 8)))  # 8進(jìn)制 轉(zhuǎn) 16進(jìn)制
    except:
        input_16hex.insert('end','轉(zhuǎn)換失敗')
 
    input_32baseN.insert('end','轉(zhuǎn)換失敗')
# 十進(jìn)制轉(zhuǎn)換
def int10():
    cls()
    try:
        input_2bin.insert('end',bin(int(var_.get(), 10)))  # 10進(jìn)制 轉(zhuǎn) 2進(jìn)制
    except:
        input_2bin.insert('end','轉(zhuǎn)換失敗')
 
    try:
        input_8oct.insert('end',oct(int(var_.get(), 10)))  # 10進(jìn)制 轉(zhuǎn) 8進(jìn)制
    except:
        input_8oct.insert('end','轉(zhuǎn)換失敗')
 
    try:
        input_10int.insert('end',str(int(var_.get(), 10)))  # 10進(jìn)制 轉(zhuǎn) 10進(jìn)制
    except:
        input_10int.insert('end','轉(zhuǎn)換失敗')
 
    try:
        input_16hex.insert('end',hex(int(var_.get(), 10)))  # 10進(jìn)制 轉(zhuǎn) 16進(jìn)制
    except:
        input_16hex.insert('end','轉(zhuǎn)換失敗')
 
    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進(jìn)制 轉(zhuǎn) 32進(jìn)制
    except:
        input_32baseN.insert('end','轉(zhuǎn)換失敗')
# 十六進(jìn)制轉(zhuǎn)換
def hex16():
    cls()
    try:
        input_2bin.insert('end',bin(int(var_.get(), 16)))  # 16進(jìn)制 轉(zhuǎn) 2進(jìn)制
    except:
        input_2bin.insert('end','轉(zhuǎn)換失敗')
 
    try:
        input_8oct.insert('end',oct(int(var_.get(), 16)))  # 16進(jìn)制 轉(zhuǎn) 8進(jìn)制
    except:
        input_8oct.insert('end','轉(zhuǎn)換失敗')
 
    try:
        input_10int.insert('end',str(int(var_.get(), 16)))  # 16進(jìn)制 轉(zhuǎn) 10進(jìn)制
    except:
        input_10int.insert('end','轉(zhuǎn)換失敗')
 
    try:
        input_16hex.insert('end',hex(int(var_.get(), 16)))  # 16進(jìn)制 轉(zhuǎn) 16進(jìn)制
    except:
        input_16hex.insert('end','轉(zhuǎn)換失敗')
 
    input_32baseN.insert('end','轉(zhuǎn)換失敗')
# 十六進(jìn)制轉(zhuǎn)換
def baseN32():
    cls()
    try:
        input_2bin.insert('end',bin(int(var_.get(), 32)))  # 32進(jìn)制 轉(zhuǎn) 2進(jìn)制
    except:
        input_2bin.insert('end','轉(zhuǎn)換失敗')
 
    try:
        input_8oct.insert('end',oct(int(var_.get(), 32)))  # 32進(jìn)制 轉(zhuǎn) 8進(jìn)制
    except:
        input_8oct.insert('end','轉(zhuǎn)換失敗')
 
    try:
        input_10int.insert('end',str(int(var_.get(), 32)))  # 32進(jìn)制 轉(zhuǎn) 10進(jìn)制
    except:
        input_10int.insert('end','轉(zhuǎn)換失敗')
 
    try:
        input_16hex.insert('end',hex(int(var_.get(), 32)))  # 32進(jìn)制 轉(zhuǎn) 16進(jìn)制
    except:
        input_16hex.insert('end','轉(zhuǎn)換失敗')
 
    input_32baseN.insert('end','轉(zhuǎn)換失敗')

按鈕插入

Button(root, text='二進(jìn)制轉(zhuǎn)換',command=bin2).place(x=13, y=30)
Button(root, text='四進(jìn)制轉(zhuǎn)換',command=bin4).place(x=103, y=30)
Button(root, text='八進(jìn)制轉(zhuǎn)換',command=oct8).place(x=193, y=30)
 
Button(root, text='十進(jìn)制轉(zhuǎn)換',command=int10).place(x=13, y=60)
Button(root, text='十六進(jìn)制轉(zhuǎn)換',command=hex16).place(x=103, y=60)
Button(root, text='三十二進(jìn)制轉(zhuǎn)',command=baseN32).place(x=193, y=60)

不僅好用,還可以裝逼,可將你的QQ號(hào)轉(zhuǎn)為16進(jìn)制用QQ進(jìn)行登錄,裝逼再好不過了

看效果:已打包

如何使用Python制作一個(gè)多進(jìn)制轉(zhuǎn)換工具

如何使用Python制作一個(gè)多進(jìn)制轉(zhuǎn)換工具

上方有鏈接可供下載

完整代碼

import tkinter
from tkinter import *
import tkinter as tk
from tkinter.ttk import *
 
root = Tk()
root.title('賤工坊-進(jìn)制轉(zhuǎn)換計(jì)算')  # 程序的標(biāo)題名稱
root.geometry("580x400+512+288")  # 窗口的大小及頁面的顯示位置
root.resizable(False, False)  # 固定頁面不可放大縮小
root.iconbitmap("picture.ico")  # 程序的圖標(biāo)
 
canvas = tkinter.Canvas(root, bg="#ebebeb", height=400, width=700, borderwidth=-3)  # 創(chuàng)建畫布
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)
 
# 二進(jìn)制
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)
 
# 八進(jìn)制
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)
 
# 十進(jìn)制
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)
 
# 十六進(jìn)制
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)
 
# 三十二進(jìn)制
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')
 
# 二進(jìn)制轉(zhuǎn)換
def bin2():
    cls()
    try:
        input_2bin.insert('end',bin(int(var_.get(), 2)))  # 2進(jìn)制 轉(zhuǎn) 2進(jìn)制
    except:
        input_2bin.insert('end','轉(zhuǎn)換失敗')
 
    try:
        input_8oct.insert('end',oct(int(var_.get(), 2)))  # 2進(jìn)制 轉(zhuǎn) 8進(jìn)制
    except:
        input_8oct.insert('end','轉(zhuǎn)換失敗')
 
    try:
        input_10int.insert('end',str(int(var_.get(), 2)))  # 2進(jìn)制 轉(zhuǎn) 10進(jìn)制
    except:
        input_10int.insert('end','轉(zhuǎn)換失敗')
 
    try:
        input_16hex.insert('end',hex(int(var_.get(), 2)))  # 2進(jìn)制 轉(zhuǎn) 16進(jìn)制
    except:
        input_16hex.insert('end','轉(zhuǎn)換失敗')
 
    input_32baseN.insert('end','轉(zhuǎn)換失敗')
# 四進(jìn)制轉(zhuǎn)換
def bin4():
    cls()
    try:
        input_2bin.insert('end',bin(int(var_.get(), 4)))  # 4進(jìn)制 轉(zhuǎn) 2進(jìn)制
    except:
        input_2bin.insert('end','轉(zhuǎn)換失敗')
 
    try:
        input_8oct.insert('end',oct(int(var_.get(), 4)))  # 4進(jìn)制 轉(zhuǎn) 8進(jìn)制
    except:
        input_8oct.insert('end','轉(zhuǎn)換失敗')
 
    try:
        input_10int.insert('end',str(int(var_.get(), 4)))  # 4進(jìn)制 轉(zhuǎn) 10進(jìn)制
    except:
        input_10int.insert('end','轉(zhuǎn)換失敗')
 
    try:
        input_16hex.insert('end',hex(int(var_.get(), 4)))  # 4進(jìn)制 轉(zhuǎn) 16進(jìn)制
    except:
        input_16hex.insert('end','轉(zhuǎn)換失敗')
 
    input_32baseN.insert('end','轉(zhuǎn)換失敗')
# 八進(jìn)制轉(zhuǎn)換
def oct8():
    cls()
    try:
        input_2bin.insert('end',bin(int(var_.get(), 8)))  # 8進(jìn)制 轉(zhuǎn) 2進(jìn)制
    except:
        input_2bin.insert('end','轉(zhuǎn)換失敗')
 
    try:
        input_8oct.insert('end',oct(int(var_.get(), 8)))  # 8進(jìn)制 轉(zhuǎn) 8進(jìn)制
    except:
        input_8oct.insert('end','轉(zhuǎn)換失敗')
 
    try:
        input_10int.insert('end',str(int(var_.get(), 8)))  # 8進(jìn)制 轉(zhuǎn) 10進(jìn)制
    except:
        input_10int.insert('end','轉(zhuǎn)換失敗')
 
    try:
        input_16hex.insert('end',hex(int(var_.get(), 8)))  # 8進(jìn)制 轉(zhuǎn) 16進(jìn)制
    except:
        input_16hex.insert('end','轉(zhuǎn)換失敗')
 
    input_32baseN.insert('end','轉(zhuǎn)換失敗')
# 十進(jìn)制轉(zhuǎn)換
def int10():
    cls()
    try:
        input_2bin.insert('end',bin(int(var_.get(), 10)))  # 10進(jìn)制 轉(zhuǎn) 2進(jìn)制
    except:
        input_2bin.insert('end','轉(zhuǎn)換失敗')
 
    try:
        input_8oct.insert('end',oct(int(var_.get(), 10)))  # 10進(jìn)制 轉(zhuǎn) 8進(jìn)制
    except:
        input_8oct.insert('end','轉(zhuǎn)換失敗')
 
    try:
        input_10int.insert('end',str(int(var_.get(), 10)))  # 10進(jìn)制 轉(zhuǎn) 10進(jìn)制
    except:
        input_10int.insert('end','轉(zhuǎn)換失敗')
 
    try:
        input_16hex.insert('end',hex(int(var_.get(), 10)))  # 10進(jìn)制 轉(zhuǎn) 16進(jìn)制
    except:
        input_16hex.insert('end','轉(zhuǎn)換失敗')
 
    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進(jìn)制 轉(zhuǎn) 32進(jìn)制
    except:
        input_32baseN.insert('end','轉(zhuǎn)換失敗')
# 十六進(jìn)制轉(zhuǎn)換
def hex16():
    cls()
    try:
        input_2bin.insert('end',bin(int(var_.get(), 16)))  # 16進(jìn)制 轉(zhuǎn) 2進(jìn)制
    except:
        input_2bin.insert('end','轉(zhuǎn)換失敗')
 
    try:
        input_8oct.insert('end',oct(int(var_.get(), 16)))  # 16進(jìn)制 轉(zhuǎn) 8進(jìn)制
    except:
        input_8oct.insert('end','轉(zhuǎn)換失敗')
 
    try:
        input_10int.insert('end',str(int(var_.get(), 16)))  # 16進(jìn)制 轉(zhuǎn) 10進(jìn)制
    except:
        input_10int.insert('end','轉(zhuǎn)換失敗')
 
    try:
        input_16hex.insert('end',hex(int(var_.get(), 16)))  # 16進(jìn)制 轉(zhuǎn) 16進(jìn)制
    except:
        input_16hex.insert('end','轉(zhuǎn)換失敗')
 
    input_32baseN.insert('end','轉(zhuǎn)換失敗')
# 十六進(jìn)制轉(zhuǎn)換
def baseN32():
    cls()
    try:
        input_2bin.insert('end',bin(int(var_.get(), 32)))  # 32進(jìn)制 轉(zhuǎn) 2進(jìn)制
    except:
        input_2bin.insert('end','轉(zhuǎn)換失敗')
 
    try:
        input_8oct.insert('end',oct(int(var_.get(), 32)))  # 32進(jìn)制 轉(zhuǎn) 8進(jìn)制
    except:
        input_8oct.insert('end','轉(zhuǎn)換失敗')
 
    try:
        input_10int.insert('end',str(int(var_.get(), 32)))  # 32進(jìn)制 轉(zhuǎn) 10進(jìn)制
    except:
        input_10int.insert('end','轉(zhuǎn)換失敗')
 
    try:
        input_16hex.insert('end',hex(int(var_.get(), 32)))  # 32進(jìn)制 轉(zhuǎn) 16進(jìn)制
    except:
        input_16hex.insert('end','轉(zhuǎn)換失敗')
 
    input_32baseN.insert('end','轉(zhuǎn)換失敗')
 
 
Button(root, text='二進(jìn)制轉(zhuǎn)換',command=bin2).place(x=13, y=30)
Button(root, text='四進(jìn)制轉(zhuǎn)換',command=bin4).place(x=103, y=30)
Button(root, text='八進(jìn)制轉(zhuǎn)換',command=oct8).place(x=193, y=30)
 
Button(root, text='十進(jìn)制轉(zhuǎn)換',command=int10).place(x=13, y=60)
Button(root, text='十六進(jìn)制轉(zhuǎn)換',command=hex16).place(x=103, y=60)
Button(root, text='三十二進(jìn)制轉(zhuǎn)',command=baseN32).place(x=193, y=60)
 
root.mainloop()

以上是“如何使用Python制作一個(gè)多進(jìn)制轉(zhuǎn)換工具”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI