很多人在需要解决进制转换时计算很容易出错,前段时间这个问题可折磨的我很是头疼,为此看了一些资料加上自己的理解写了一个小程序,具体如下:
首先,python中有现成的转换函数可以利用
十进制转二进制:a=bin(b)
十进制转八进制:a=oct(b)
十进制转十六进制:a=hex(b)
1.我们引入python中的第三方库:thinker创建一个可视化窗口
import tkinter as tk
win = tk.Tk()
win.title('十进制与其他进制的转换')
win.geometry('500x450')
2.在窗口中设置标签:
t1 = tk.Label(win, text='进制转换\n--------------------', font=24)
t1.grid(row=0, column=1)
t2 = tk.Label(win, text='请输入你要转换的其他进制:\t')
t2.grid(row=1, column=0)
t3 = tk.Label(win, text='结果\t:')
t3.grid(row=2, column=0)
e2 = tk.Entry(win)
e2.grid(row=1, column=1)
3.设置输出框
e3 = tk.StringVar()
tk.Label(win, width=20, height=1, bg='white', textvariable=e3).grid(row=2, column=1)
4.设置函数
def one():
b = bin(int(e2.get()))
e3.set(b)
def two():
c = oct(int(e2.get()))
e3.set(c)
def three():
d = hex(int(e2.get()))
e3.set(d)
5.设置按钮
b2 = tk.Button(win, text="二进制", command=one)
b3 = tk.Button(win, text="八进制", command=two)
b4 = tk.Button(win, text="十六进制", command=three)
b2.grid(row=3, column=0)
b3.grid(row=3, column=1)
b4.grid(row=3, column=3)
最终的运行结果如下:
全部代码如下:
import tkinter as tk
win = tk.Tk()
win.title('十进制与其他进制的转换')
win.geometry('500x450')
t1 = tk.Label(win, text='进制转换\n--------------------', font=24)
t1.grid(row=0, column=1)
t2 = tk.Label(win, text='请输入你要转换的其他进制:\t')
t2.grid(row=1, column=0)
t3 = tk.Label(win, text='结果\t:')
t3.grid(row=2, column=0)
e2 = tk.Entry(win)
e2.grid(row=1, column=1)
e3 = tk.StringVar()
tk.Label(win, width=20, height=1, bg='white', textvariable=e3).grid(row=2, column=1)
def one():
b = bin(int(e2.get()))
e3.set(b)
def two():
c = oct(int(e2.get()))
e3.set(c)
def three():
d = hex(int(e2.get()))
e3.set(d)
b2 = tk.Button(win, text="二进制", command=one)
b3 = tk.Button(win, text="八进制", command=two)
b4 = tk.Button(win, text="十六进制", command=three)
b2.grid(row=3, column=0)
b3.grid(row=3, column=1)
b4.grid(row=3, column=3)
win.mainloop()