admin管理员组文章数量:1794759
Python进制转换GUI界面设计
或许大家已经较为熟练掌握Python基础了,跃跃欲试地想编程一个属于自己的应用,但又无从下手。这次带来的.py完全可以满足萌新的要求,如果向打包成.exe,这里推荐一位B站up主的视频供大家参考.py转.exe(学不会随便嫖)_哔哩哔哩_bilibili
目录
1.简要介绍
2.分步详解
2.1转化函数(二进制转化函数)
2.2界面设计
3.最终代码
4.结语
1.简要介绍程序功能很简单,可根据输入的数值与精度得到对应进制的转化数字。主要使用的是python自带的tkinter库内的函数。
2.分步详解 2.1转化函数(二进制转化函数) #Num为输入数字,Time控制输出位数 def bin_Translate(Num, Time): #得到Num的整数部分 Num_Int = int(Num) #创建空列表临时存放值 x = "" #创建空列表存放最终值 finnal = "" #Num整数部分为0 if Num_Int == 0: x = x + "0" #进入循环,除2取余 while Num_Int > 0: x = x + str(Num_Int % 2) Num_Int = int(Num_Int / 2) #逆向将x列表复制到finnal列表中 total = len(x) while total >= 1: finnal = finnal + x[total - 1] total = total - 1 #去除Num小数部分 Num_Ap = Num - int(Num) #控制循环因子 time = 1 if Num_Ap != 0: #添加小数点 finnal = finnal + '.' #进入循环,乘2取整 while time <= Time: Num_Ap = Num_Ap * 2 if Num_Ap >= 1: finnal = finnal + '1' Num_Ap = Num_Ap - 1 else: finnal = finnal + '0' time = time + 1 #返回finnal列表 return finnal 2.2界面设计 root = Tk() #设置窗口标题 root.title('进制转换器') #设置窗口大小 root.geometry('400x300') root.resizable(False, False) var = StringVar() #设置标签 label_1 = Label(root, text="请输入待转换的数值(可输入小数)") #设置输入框 entry_1 = Entry(root) label_2 = Label(root, text="请输入转化后的进制(二进制与八进制可选)") entry_2 = Entry(root) label_3 = Label(root, text="请输入转化后的位数(对整数无效)") entry_3 = Entry(root) #设置输出 label = Label(root, textvariable=var, width=20, justify='left') #定义输出函数 def show(): #取出输入框值 E1 = float(entry_1.get()) E2 = int(entry_2.get()) E3 = int(entry_3.get()) if E2 == 2: var.set(bin_Translate(E1, E3)) elif E2 == 8: var.set(oct_Translate(E1, E3)) else: var.set('进制错误') #设置输出按钮 button = Button(root, text='转换', command=show) label_1.pack() entry_1.pack() label_2.pack() entry_2.pack() label_3.pack() entry_3.pack() button.pack() label.pack() #设置推出按钮 Button(root, text="退出程序", command=root.quit).pack() root.mainloop() 3.最终代码 from tkinter import * #Num为输入数字,Time控制输出位数 def bin_Translate(Num, Time): #得到Num的整数部分 Num_Int = int(Num) #创建空列表临时存放值 x = "" #创建空列表存放最终值 finnal = "" #Num整数部分为0 if Num_Int == 0: x = x + "0" #进入循环,除2取余 while Num_Int > 0: x = x + str(Num_Int % 2) Num_Int = int(Num_Int / 2) #逆向将x列表复制到finnal列表中 total = len(x) while total >= 1: finnal = finnal + x[total - 1] total = total - 1 #去除Num小数部分 Num_Ap = Num - int(Num) #控制循环因子 time = 1 if Num_Ap != 0: #添加小数点 finnal = finnal + '.' #进入循环,乘2取整 while time <= Time: Num_Ap = Num_Ap * 2 if Num_Ap >= 1: finnal = finnal + '1' Num_Ap = Num_Ap - 1 else: finnal = finnal + '0' time = time + 1 #返回finnal列表 return finnal def oct_Translate(Num, Time): Num_Int = int(Num) x = "" finnal = "" if Num_Int == 0: x = x + "0" while Num_Int > 0: x = x + str(Num_Int % 8) Num_Int = int(Num_Int / 8) total = len(x) while total >= 1: finnal = finnal + x[total - 1] total = total - 1 Num_Ap = Num - int(Num) time = 1 if Num_Ap != 0: finnal = finnal + '.' while time <= Time: Num_Ap = Num_Ap * 8 if Num_Ap >= 1: finnal = finnal + str(int(Num_Ap)) Num_Ap = Num_Ap - int(Num_Ap) else: finnal = finnal + '0' time = time + 1 return finnal root = Tk() #设置窗口标题 root.title('进制转换器') #设置窗口大小 root.geometry('400x300') root.resizable(False, False) var = StringVar() #设置标签 label_1 = Label(root, text="请输入待转换的数值(可输入小数)") #设置输入框 entry_1 = Entry(root) label_2 = Label(root, text="请输入转化后的进制(二进制与八进制可选)") entry_2 = Entry(root) label_3 = Label(root, text="请输入转化后的位数(对整数无效)") entry_3 = Entry(root) #设置输出 label = Label(root, textvariable=var, width=20, justify='left') #定义输出函数 def show(): #取出输入框值 E1 = float(entry_1.get()) E2 = int(entry_2.get()) E3 = int(entry_3.get()) if E2 == 2: var.set(bin_Translate(E1, E3)) elif E2 == 8: var.set(oct_Translate(E1, E3)) else: var.set('进制错误') #设置输出按钮 button = Button(root, text='转换', command=show) label_1.pack() entry_1.pack() label_2.pack() entry_2.pack() label_3.pack() entry_3.pack() button.pack() label.pack() #设置推出按钮 Button(root, text="退出程序", command=root.quit).pack() root.mainloop() 4.结语若有疑问,欢迎向博主私信、评论。
版权声明:本文标题:Python进制转换GUI界面设计 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686579557a84004.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论