2

base64encode(ntei)「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)))
4

1 に答える 1

0

問題は"Heres the number in base 64: " + base64encode(ntei). 自分で改行を入れていないので、当然改行は表示されません。改行は\nPython の文字で表されます。したがって、その文字列に改行を追加するには、改行を に変更する必要があります"Heres the number in base 64:\n" + base64encode(ntei)

base64encode 関数は完全に不要であることにも言及する価値があります (何らかの理由でその関数の戻り値を確認したい場合を除き、printの前で使用する場合と同様)。easygui.msgboxのように、Python 文字列のエンコード メソッドを使用して、文字列を 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')))
于 2012-12-04T14:36:33.803 に答える