python - 如何使用 easygui 将我的编码数字放到新行中?

标签 python base64

我想将 base64 encode(ntee) 放入“Heres the number in base 64:”下的新行中,有人知道方法吗?

import easygui as e

nte = e.enterbox(msg="Enter Number to convert", title="", default="", strip=True)
ntei = int(nte)

def base64encode(number, alphabet="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"):
    """Converts an integer to a base64 string."""
    if not isinstance(number, (int, long)):
        raise TypeError("Number must be an integer")

    base64 = ""
    sign = ""

    if number < 0:
        sign = "_"
        number = -number

    if 0 <= number <len(alphabet):
        return sign + alphabet[number]

    while number !=0:
        number, i = divmod(number, len(alphabet))
        base64 = alphabet[i] + base64

    return sign + base64

def base60decode(number):
    return int(number, 64)

print e.msgbox(msg=("Heres the number in base 64: " + base64encode(ntei)))

最佳答案

问题在于 "Heres the number in base 64: "+ base64encode(ntei)。你自己并没有在那里放一个换行符,所以它自然不会显示一个。换行符在 Python 中通过字符 \n 表示。因此,要向该字符串添加换行符,我们必须将其更改为 "Heres the number in base 64:\n"+ base64encode(ntei)

还值得一提的是,您的 base64encode 函数是完全不必要的(就像在 easygui.msgbox 前面使用 print 一样,除非出于某种原因您希望看到函数的返回值)。您可以通过 Python 字符串的 encode 方法将字符串转换为 base64,如 ntei.encode('base64')。使用这些知识,您的整个程序可以重写为以下内容:

import easygui as e

nte = e.enterbox(msg='Enter number to convert', title='', default='', strip=True)
e.msgbox(msg=('Heres the number in base 64: ' + nte.encode('base64')))

关于python - 如何使用 easygui 将我的编码数字放到新行中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13704485/

相关文章:

python - 使用 numpy 或 scipy 的 sympy 代码的运行时优化

python - 如何将使用实例变量的实例方法作为参数传递给另一个函数?

Python - 一维索引超出范围 1

python - 返回从列表中选择的选项

java - org.apache.commons.codec.binary.Base64 和 com.sun.org.apache.xml.internal.security.utils.Base64 之间有什么区别吗?

javascript - 如何在asp.net上压缩数据并在javascript中解压缩

Python 链接到文件迭代器不迭代

javascript - 为什么 LZMA-JS 压缩的字符串大小约为比压缩前大 10 倍

c - Polarssl Base64.c 错误检查

ios - 将图像转换为 Json Swift 3 的 Base64