Python GUI代码转为可执行文件(.exe)实例——进制转化器
- Python进制转换函数
- 转十进制
- 转二进制
- 转八进制
- 转十六进制
- tkinter库
- 进制转换器源代码
- 生成可执行文件
Python进制转换函数
以下内容介绍Python中各种进制转换的函数
转十进制
二进制转十进制:
>>>int('1000',2)
8
八进制转十进制:
>>>int('1000',8)
512
十六进制转十进制
>>>int('0xf',16)
15
转二进制
十进制转二进制:
>>>bin(8)
'0b1000'
八进制转二进制:
八→十→二:
>>>bin(int('1000',8))
'0b1000000000'
十六进制转二进制:
十六→十→二:
>>>bin(int('0xf',16))
'0b1111'
转八进制
二进制转八进制:
>>>oct(0b1000)
'0o10'
十进制转八进制:
>>>oct(1000)
'0o1750'
十六进制转八进制:
>>>oct(0x100)
'0o400'
转十六进制
二进制转十六进制:
>>>hex(0b1000)
'0x8'
八进制转十六进制:
>>>hex(0o1000)
'0x200'
十进制转十六进制:
>>>hex(1000)
'0x3e8'
tkinter库
链接: Tk-Python中文开发手册 含有窗体(window)、标签(label)、输入框(entry)、按钮(button)、文本框(Text)等控件,不同的控件又有大小、颜色、位置等属性,具体可以参考开发手册。
进制转换器源代码
有以上基本内容就可以先写出一个进制转换器的代码了
import tkinter as tk #导入Tk库
window = tk.Tk()
window.title('进制转换器')
window.geometry('500x750')
#页面布局
l2 = tk.Label(window,text='二进制数')
l2.pack()
e2 = tk.Entry(window,show=None)
e2.pack()
l8 = tk.Label(window,text='八进制数')
l8.pack()
e8 = tk.Entry(window,show =None)
e8.pack()
l10 = tk.Label(window,text='十进制数')
l10.pack()
e10 = tk.Entry(window,show = None)
e10.pack()
l16 = tk.Label(window,text='十六进制数')
l16.pack()
e16 = tk.Entry(window,show = None)
e16.pack()
#按钮逻辑
def compute2():
a2=e2.get()
a8=e8.get()
a10=e10.get()
a16=e16.get()
if a2!=''and a8==''and a10==''and a16=='':
t.insert('insert','二进制数'+a2+'的二进制表示是'+a2+'\n')
if a8!=''and a10==''and a16=='':
t.insert('insert','八进制数'+a8+'的二进制表示是'+bin(int(a8,8))+'\n')
if a10!=''and a16=='':
t.insert('insert','十进制数'+a10+'的二进制表示是'+bin(int(a10))+'\n')
if a16!='':
t.insert('insert','十六进制数'+a16+'的二进制表示是'+bin(int(a16,16))+'\n')
def compute8():
a2=e2.get()
a8=e8.get()
a10=e10.get()
a16=e16.get()
if a2!=''and a8==''and a10==''and a16=='':
t.insert('insert','二进制数'+a2+'的八进制表示是'+oct(int(a2,2))+'\n')
if a8!=''and a10==''and a16=='':
t.insert('insert','八进制数'+a8+'的八进制表示是'+a8+'\n')
if a10!=''and a16=='':
t.insert('insert','十进制数'+a10+'的八进制表示是'+oct(int(a10))+'\n')
if a16!='':
t.insert('insert','十六进制数'+a16+'的八进制表示是'+oct(int(a16,16))+'\n')
def compute10():
a2=e2.get()
a8=e8.get()
a10=e10.get()
a16=e16.get()
if a2!=''and a8==''and a10==''and a16=='':
t.insert('insert','二进制数'+a2+'的十进制表示是'+str(int(a2,2))+'\n')
if a8!=''and a10==''and a16=='':
t.insert('insert','八进制数'+a8+'的十进制表示是'+str(int(a8,8))+'\n')
if a10!=''and a16=='':
t.insert('insert','十进制数'+a10+'的十进制表示是'+a10+'\n')
if a16!='':
t.insert('insert','十六进制数'+a16+'的十进制表示是'+str(int(a16,16))+'\n')
def compute16():
a2=e2.get()
a8=e8.get()
a10=e10.get()
a16=e16.get()
if a2!=''and a8==''and a10==''and a16=='':
t.insert('insert','二进制数'+a2+'的十六进制表示是'+str(hex(int(a2,2)))+'\n')
if a8!=''and a10==''and a16=='':
t.insert('insert','八进制数'+a8+'的十六进制表示是'+str(hex(int(a8,8)))+'\n')
if a10!=''and a16=='':
t.insert('insert','十进制数'+a10+'的十六进制表示是'+hex(int(a10))+'\n')
if a16!='':
t.insert('insert','十六进制数'+a16+'的十六进制表示是'+a16+'\n')
#按钮
b2 = tk.Button(window,
text='转二进制',
width=15, height=2,
command=compute2,)
b2.pack()
b8 = tk.Button(window,
text='转八进制',
width=15, height=2,
command=compute8)
b8.pack()
b10 = tk.Button(window,
text='转十进制',
width=15, height=2,
command=compute10)
b10.pack()
b16 = tk.Button(window,
text='转十六进制',
width=15, height=2,
command=compute16)
b16.pack()
#结果文本框
t = tk.Text(window)
t.pack()
window.mainloop() #这句话必须要有,否则无法生成窗体exe文件
运行结果:
生成可执行文件
将.py转化为.exe需要pyinstaller库,对于有图形界面和无图形界面的Python代码都适用。
首先进入cmd,需要安装这个库
>>>pip install pyinstaller
安装好以后,进入.py文件所在的文件夹,执行如下代码:
>>>pyinstaller -f xxx.py
即可生成.exe,这个可执行文件在该目录下dist文件夹下,双击执行:
如果想要去掉下面的黑色窗体,可执行如下代码:
>>>pyinstaller -F -w xxx.py
如果想给你的应用加上图标,可以将图标图像(.ico)放到与.py同一文件夹下,,执行如下代码:
pyinstaller -F -w -i xxx.ico xxx.py
如未显示图标图像,则移动该可执行文件即可