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文件

运行结果:

python支持转换文件 python文件转化为exe_八进制

生成可执行文件

将.py转化为.exe需要pyinstaller库,对于有图形界面和无图形界面的Python代码都适用。
首先进入cmd,需要安装这个库

>>>pip install pyinstaller

安装好以后,进入.py文件所在的文件夹,执行如下代码:

>>>pyinstaller -f xxx.py

即可生成.exe,这个可执行文件在该目录下dist文件夹下,双击执行:

python支持转换文件 python文件转化为exe_十进制_02


如果想要去掉下面的黑色窗体,可执行如下代码:

>>>pyinstaller -F -w xxx.py

如果想给你的应用加上图标,可以将图标图像(.ico)放到与.py同一文件夹下,,执行如下代码:

pyinstaller -F -w -i xxx.ico xxx.py

python支持转换文件 python文件转化为exe_十六进制_03


如未显示图标图像,则移动该可执行文件即可