iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >基于Python制作一个多进制转换工具
  • 744
分享到

基于Python制作一个多进制转换工具

2024-04-02 19:04:59 744人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录前言主要步骤完整代码前言 学习资料下载链接 提取码:9d4g  进制转换计算工具含源文件 主要步骤 导入模块 import tkinter from tki

前言

学习资料下载链接 提取码:9d4g  进制转换计算工具含源文件

主要步骤

导入模块

import tkinter
from tkinter import *
import tkinter as tk
from tkinter.ttk import *

整个框架的主结构

root = Tk()
root.title('贱工坊-进制转换计算')  # 程序的标题名称
root.geometry("580x400+512+288")  # 窗口的大小及页面的显示位置
root.resizable(False, False)  # 固定页面不可放大缩小
root.iconbitmap("picture.ico")  # 程序的图标

GUI框架插入图片,视觉感受

canvas = tkinter.Canvas(root, bg="#ebebeb", height=400, width=700, borderwidth=-3)  # 创建画布
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)

信息输出框

# 二进制
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)
 
# 八进制
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)
 
# 十进制
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)
 
# 十六进制
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)
 
# 三十二进制
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')

转换数据的主要核心,bin、oct、int、hex,

# 二进制转换
def bin2():
    cls()
    try:
        input_2bin.insert('end',bin(int(var_.get(), 2)))  # 2进制 转 2进制
    except:
        input_2bin.insert('end','转换失败')
 
    try:
        input_8oct.insert('end',oct(int(var_.get(), 2)))  # 2进制 转 8进制
    except:
        input_8oct.insert('end','转换失败')
 
    try:
        input_10int.insert('end',str(int(var_.get(), 2)))  # 2进制 转 10进制
    except:
        input_10int.insert('end','转换失败')
 
    try:
        input_16hex.insert('end',hex(int(var_.get(), 2)))  # 2进制 转 16进制
    except:
        input_16hex.insert('end','转换失败')
 
    input_32baseN.insert('end','转换失败')
# 四进制转换
def bin4():
    cls()
    try:
        input_2bin.insert('end',bin(int(var_.get(), 4)))  # 4进制 转 2进制
    except:
        input_2bin.insert('end','转换失败')
 
    try:
        input_8oct.insert('end',oct(int(var_.get(), 4)))  # 4进制 转 8进制
    except:
        input_8oct.insert('end','转换失败')
 
    try:
        input_10int.insert('end',str(int(var_.get(), 4)))  # 4进制 转 10进制
    except:
        input_10int.insert('end','转换失败')
 
    try:
        input_16hex.insert('end',hex(int(var_.get(), 4)))  # 4进制 转 16进制
    except:
        input_16hex.insert('end','转换失败')
 
    input_32baseN.insert('end','转换失败')
# 八进制转换
def oct8():
    cls()
    try:
        input_2bin.insert('end',bin(int(var_.get(), 8)))  # 8进制 转 2进制
    except:
        input_2bin.insert('end','转换失败')
 
    try:
        input_8oct.insert('end',oct(int(var_.get(), 8)))  # 8进制 转 8进制
    except:
        input_8oct.insert('end','转换失败')
 
    try:
        input_10int.insert('end',str(int(var_.get(), 8)))  # 8进制 转 10进制
    except:
        input_10int.insert('end','转换失败')
 
    try:
        input_16hex.insert('end',hex(int(var_.get(), 8)))  # 8进制 转 16进制
    except:
        input_16hex.insert('end','转换失败')
 
    input_32baseN.insert('end','转换失败')
# 十进制转换
def int10():
    cls()
    try:
        input_2bin.insert('end',bin(int(var_.get(), 10)))  # 10进制 转 2进制
    except:
        input_2bin.insert('end','转换失败')
 
    try:
        input_8oct.insert('end',oct(int(var_.get(), 10)))  # 10进制 转 8进制
    except:
        input_8oct.insert('end','转换失败')
 
    try:
        input_10int.insert('end',str(int(var_.get(), 10)))  # 10进制 转 10进制
    except:
        input_10int.insert('end','转换失败')
 
    try:
        input_16hex.insert('end',hex(int(var_.get(), 10)))  # 10进制 转 16进制
    except:
        input_16hex.insert('end','转换失败')
 
    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进制 转 32进制
    except:
        input_32baseN.insert('end','转换失败')
# 十六进制转换
def hex16():
    cls()
    try:
        input_2bin.insert('end',bin(int(var_.get(), 16)))  # 16进制 转 2进制
    except:
        input_2bin.insert('end','转换失败')
 
    try:
        input_8oct.insert('end',oct(int(var_.get(), 16)))  # 16进制 转 8进制
    except:
        input_8oct.insert('end','转换失败')
 
    try:
        input_10int.insert('end',str(int(var_.get(), 16)))  # 16进制 转 10进制
    except:
        input_10int.insert('end','转换失败')
 
    try:
        input_16hex.insert('end',hex(int(var_.get(), 16)))  # 16进制 转 16进制
    except:
        input_16hex.insert('end','转换失败')
 
    input_32baseN.insert('end','转换失败')
# 十六进制转换
def baseN32():
    cls()
    try:
        input_2bin.insert('end',bin(int(var_.get(), 32)))  # 32进制 转 2进制
    except:
        input_2bin.insert('end','转换失败')
 
    try:
        input_8oct.insert('end',oct(int(var_.get(), 32)))  # 32进制 转 8进制
    except:
        input_8oct.insert('end','转换失败')
 
    try:
        input_10int.insert('end',str(int(var_.get(), 32)))  # 32进制 转 10进制
    except:
        input_10int.insert('end','转换失败')
 
    try:
        input_16hex.insert('end',hex(int(var_.get(), 32)))  # 32进制 转 16进制
    except:
        input_16hex.insert('end','转换失败')
 
    input_32baseN.insert('end','转换失败')

按钮插入

Button(root, text='二进制转换',command=bin2).place(x=13, y=30)
Button(root, text='四进制转换',command=bin4).place(x=103, y=30)
Button(root, text='八进制转换',command=oct8).place(x=193, y=30)
 
Button(root, text='十进制转换',command=int10).place(x=13, y=60)
Button(root, text='十六进制转换',command=hex16).place(x=103, y=60)
Button(root, text='三十二进制转',command=baseN32).place(x=193, y=60)

不仅好用,还可以装逼,可将你的QQ号转为16进制用QQ进行登录,装逼再好不过了

看效果:已打包

上方有链接可供下载

完整代码

import tkinter
from tkinter import *
import tkinter as tk
from tkinter.ttk import *
 
root = Tk()
root.title('贱工坊-进制转换计算')  # 程序的标题名称
root.geometry("580x400+512+288")  # 窗口的大小及页面的显示位置
root.resizable(False, False)  # 固定页面不可放大缩小
root.iconbitmap("picture.ico")  # 程序的图标
 
canvas = tkinter.Canvas(root, bg="#ebebeb", height=400, width=700, borderwidth=-3)  # 创建画布
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)
 
# 二进制
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)
 
# 八进制
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)
 
# 十进制
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)
 
# 十六进制
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)
 
# 三十二进制
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')
 
# 二进制转换
def bin2():
    cls()
    try:
        input_2bin.insert('end',bin(int(var_.get(), 2)))  # 2进制 转 2进制
    except:
        input_2bin.insert('end','转换失败')
 
    try:
        input_8oct.insert('end',oct(int(var_.get(), 2)))  # 2进制 转 8进制
    except:
        input_8oct.insert('end','转换失败')
 
    try:
        input_10int.insert('end',str(int(var_.get(), 2)))  # 2进制 转 10进制
    except:
        input_10int.insert('end','转换失败')
 
    try:
        input_16hex.insert('end',hex(int(var_.get(), 2)))  # 2进制 转 16进制
    except:
        input_16hex.insert('end','转换失败')
 
    input_32baseN.insert('end','转换失败')
# 四进制转换
def bin4():
    cls()
    try:
        input_2bin.insert('end',bin(int(var_.get(), 4)))  # 4进制 转 2进制
    except:
        input_2bin.insert('end','转换失败')
 
    try:
        input_8oct.insert('end',oct(int(var_.get(), 4)))  # 4进制 转 8进制
    except:
        input_8oct.insert('end','转换失败')
 
    try:
        input_10int.insert('end',str(int(var_.get(), 4)))  # 4进制 转 10进制
    except:
        input_10int.insert('end','转换失败')
 
    try:
        input_16hex.insert('end',hex(int(var_.get(), 4)))  # 4进制 转 16进制
    except:
        input_16hex.insert('end','转换失败')
 
    input_32baseN.insert('end','转换失败')
# 八进制转换
def oct8():
    cls()
    try:
        input_2bin.insert('end',bin(int(var_.get(), 8)))  # 8进制 转 2进制
    except:
        input_2bin.insert('end','转换失败')
 
    try:
        input_8oct.insert('end',oct(int(var_.get(), 8)))  # 8进制 转 8进制
    except:
        input_8oct.insert('end','转换失败')
 
    try:
        input_10int.insert('end',str(int(var_.get(), 8)))  # 8进制 转 10进制
    except:
        input_10int.insert('end','转换失败')
 
    try:
        input_16hex.insert('end',hex(int(var_.get(), 8)))  # 8进制 转 16进制
    except:
        input_16hex.insert('end','转换失败')
 
    input_32baseN.insert('end','转换失败')
# 十进制转换
def int10():
    cls()
    try:
        input_2bin.insert('end',bin(int(var_.get(), 10)))  # 10进制 转 2进制
    except:
        input_2bin.insert('end','转换失败')
 
    try:
        input_8oct.insert('end',oct(int(var_.get(), 10)))  # 10进制 转 8进制
    except:
        input_8oct.insert('end','转换失败')
 
    try:
        input_10int.insert('end',str(int(var_.get(), 10)))  # 10进制 转 10进制
    except:
        input_10int.insert('end','转换失败')
 
    try:
        input_16hex.insert('end',hex(int(var_.get(), 10)))  # 10进制 转 16进制
    except:
        input_16hex.insert('end','转换失败')
 
    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进制 转 32进制
    except:
        input_32baseN.insert('end','转换失败')
# 十六进制转换
def hex16():
    cls()
    try:
        input_2bin.insert('end',bin(int(var_.get(), 16)))  # 16进制 转 2进制
    except:
        input_2bin.insert('end','转换失败')
 
    try:
        input_8oct.insert('end',oct(int(var_.get(), 16)))  # 16进制 转 8进制
    except:
        input_8oct.insert('end','转换失败')
 
    try:
        input_10int.insert('end',str(int(var_.get(), 16)))  # 16进制 转 10进制
    except:
        input_10int.insert('end','转换失败')
 
    try:
        input_16hex.insert('end',hex(int(var_.get(), 16)))  # 16进制 转 16进制
    except:
        input_16hex.insert('end','转换失败')
 
    input_32baseN.insert('end','转换失败')
# 十六进制转换
def baseN32():
    cls()
    try:
        input_2bin.insert('end',bin(int(var_.get(), 32)))  # 32进制 转 2进制
    except:
        input_2bin.insert('end','转换失败')
 
    try:
        input_8oct.insert('end',oct(int(var_.get(), 32)))  # 32进制 转 8进制
    except:
        input_8oct.insert('end','转换失败')
 
    try:
        input_10int.insert('end',str(int(var_.get(), 32)))  # 32进制 转 10进制
    except:
        input_10int.insert('end','转换失败')
 
    try:
        input_16hex.insert('end',hex(int(var_.get(), 32)))  # 32进制 转 16进制
    except:
        input_16hex.insert('end','转换失败')
 
    input_32baseN.insert('end','转换失败')
 
 
Button(root, text='二进制转换',command=bin2).place(x=13, y=30)
Button(root, text='四进制转换',command=bin4).place(x=103, y=30)
Button(root, text='八进制转换',command=oct8).place(x=193, y=30)
 
Button(root, text='十进制转换',command=int10).place(x=13, y=60)
Button(root, text='十六进制转换',command=hex16).place(x=103, y=60)
Button(root, text='三十二进制转',command=baseN32).place(x=193, y=60)
 
root.mainloop()

以上就是基于python制作一个多进制转换工具的详细内容,更多关于Python多进制转换工具的资料请关注编程网其它相关文章!

--结束END--

本文标题: 基于Python制作一个多进制转换工具

本文链接: https://www.lsjlt.com/news/138621.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 基于Python制作一个多进制转换工具
    目录前言主要步骤完整代码前言 学习资料下载链接 提取码:9d4g  进制转换计算工具含源文件 主要步骤 导入模块 import tkinter from tki...
    99+
    2022-11-13
  • 如何使用Python制作一个多进制转换工具
    小编给大家分享一下如何使用Python制作一个多进制转换工具,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!前言学习资料下载链接 提取码:tha8&nbs...
    99+
    2023-06-29
  • 基于Python制作一个文件解压缩工具
    经常由于各种压缩格式的不一样用到文件的解压缩时就需要下载不同的解压缩工具去处理不同的文件,以至于桌面上的压缩工具就有三四种,于是使用python做了一个包含各种常见格式的文件解压缩的...
    99+
    2022-11-11
  • 基于Python制作一个文件去重小工具
    目录前言实现步骤补充前言 常常在下载网络素材时有很多的重复文件乱七八糟的,于是想实现一个去重的操作。 主要实现思路就是遍历出某个文件夹包括其子文件夹下面的所有文件,最后,将所有文件...
    99+
    2022-11-13
  • 基于Java如何实现进制转换工具类
    这篇文章主要介绍了基于Java如何实现进制转换工具类的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇基于Java如何实现进制转换工具类文章都会有所收获,下面我们一起来看看吧。背景最近有个发送短信的功能,需要在短信...
    99+
    2023-07-05
  • 基于Python制作个抢红包的工具
    目录1. 概述2. 环境3. 实现1. 概述 快过年了,刚刚收到了两个消息,一个好消息,一个坏消息。 先说好消息,好消息就是微信群里有人要发红包,开心~ 不过转念一想,前几次的红包一...
    99+
    2023-01-10
    Python抢红包工具 Python抢红包 Python 红包
  • 基于PyQT5制作一个桌面摸鱼工具
    目录前言按键功能控制主要功能核心代码前言 现在我能一整天都严肃地盯着屏幕,看起来就像在很认真地工作, 利用摸鱼,打开小说,可实行完美摸鱼,实时保存进度 用PYQT5 Mock一个摸鱼...
    99+
    2022-11-13
  • 基于PyQt5制作一个群发邮件工具
    演示示例使用QQ邮箱发送邮件,先获取自己的QQ邮箱的授权码。因为后面发送邮件时需要使用自己的授权码作为邮箱的密码登录邮箱最后达到发送邮件的目的。 将UI处理的相关的界面包导入进来...
    99+
    2022-11-10
  • 基于PyQt5制作一个截图翻译工具
    目录功能介绍UI 界面截图翻译文字识别全局热键(快捷键)托盘管理主代码功能介绍 1.翻译功能 2.截图功能(快捷键 + 截图存储到剪切板中) 3.文字识别OCR(基于百度API的文字...
    99+
    2022-11-12
  • 基于Python制作一个简单的文章搜索工具
    目录 前言功能实现导入模块创建窗口背景图片搜索文本框 内容显示界面搜索内容效果代码展示内容效果代码点击搜索功能代码访问博客网页 前言 今天,我无聊的时候...
    99+
    2023-05-12
    Python实现文章搜索工具 Python文章搜索工具 Python文章搜索 Python 搜索工具
  • 基于Python怎么制作一个文件解压缩工具
    经常由于各种压缩格式的不一样用到文件的解压缩时就需要下载不同的解压缩工具去处理不同的文件,以至于桌面上的压缩工具就有三四种,于是使用python做了一个包含各种常见格式的文件解压缩的小工具。常见的压缩格式主要是下面的四种格式:zip 格式的...
    99+
    2023-05-14
    Python
  • 基于Python制作一键桌面整理工具
    目录前言效果展示开发思路完整代码前言 我承认我不是一个爱整理桌面的人,因为我觉得乱糟糟的桌面,反而容易找到文件。 哈哈,可是最近桌面实在是太乱了,自己都看不下去了,几乎占满了整个屏幕...
    99+
    2022-11-13
  • 基于Python+OpenCV制作屏幕录制工具
    目录应用平台屏幕录制部分计算视频最优fps及使用numpy计算中间帧数组使用pynput监听键盘按键如何保存MP4格式视频源码总结最近有在使用屏幕录制软件录制桌面,在用的过程中突发奇...
    99+
    2022-11-12
  • 基于PyQT5制作一个敏感词检测工具
    设计思路:根据敏感词库文件筛选,查看输入的文本中是否包含敏感词汇。从而过滤出相关的敏感词。 导入应用相关的模块。 import os import logging import s...
    99+
    2022-11-13
  • 基于Python制作ASCII码转换器
    目录实现效果实现步骤完整代码实现效果 使用 chr 和 ord 进行互转, prtint(chr(98))     结果:b print(ord(b)...
    99+
    2022-11-13
  • 基于Python制作一个汇率换算程序
    目录1.汇率换算程序案例描述案例分析代码2.新增功能案例分析代码字符串索引3.增加功能案例描述案例分析代码1.汇率换算程序 案例描述 设计一个汇率换算器程序,其功能是将外币换算成人民...
    99+
    2022-11-11
  • 基于Java实现进制转换工具类的示例代码
    目录背景原理十进制A转换为N进制RN进制R转换为十进制A应用延伸背景 最近有个发送短信的功能,需要在短信中带有详情链接,链接中带有对应信息且要有校验功能,然而短信是按字数收费的,所以...
    99+
    2023-02-19
    Java进制转换工具类 Java进制转换
  • 基于Python自制一个文件解压缩小工具
    经常在办公的过程中会遇到各种各样的压缩文件处理,但是呢每个压缩软件支持的格式又是不同的。 没有可以一种可以同时多种格式的并且免费的文件解压缩工具,于是我使用python的PyQt5开...
    99+
    2023-02-06
    Python文件解压缩工具 Python文件解压缩
  • 基于Python+OpenCV如何制作屏幕录制工具
    这篇文章跟大家分析一下“基于Python+OpenCV如何制作屏幕录制工具”。内容详细易懂,对“基于Python+OpenCV如何制作屏幕录制工具”感兴趣的朋友可以跟着小编的思路慢慢深入来阅读一下,希望阅读后能够对大家有所帮助。下面跟着小编...
    99+
    2023-06-26
  • 分享一个基于PHP的时间戳转换工具
    在Web开发的过程中,我们常常需要对时间相关的数据进行操作和处理。在PHP中,时间戳是一个常用的时间表示方式。然而,时间戳是一个以秒为单位的数字,对于人类来说并不直观易懂。因此,我们需要一个时间戳转换工具,能够将时间戳转换为易于理解的日期时...
    99+
    2023-05-14
    php php时间戳
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作