您好,登錄后才能下訂單哦!
小編給大家分享一下如何使用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)行登錄,裝逼再好不過了
看效果:已打包
上方有鏈接可供下載
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è)資訊頻道!
免責(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)容。