第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Base 62轉(zhuǎn)換

Base 62轉(zhuǎn)換

您將如何將整數(shù)轉(zhuǎn)換為以62為底的整數(shù)(如十六進制,但具有以下數(shù)字:“ 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ”)。我一直試圖為它找到一個好的Python庫,但是它們似乎都被轉(zhuǎn)換字符串所占據(jù)。Python base64模塊僅接受字符串,并將一個數(shù)字轉(zhuǎn)換為四個字符。我一直在尋找類似于URL縮短器使用的東西。
查看完整描述

3 回答

?
慕尼黑8549860

TA貢獻1818條經(jīng)驗 獲得超11個贊

我曾經(jīng)寫過一個腳本也可以做到這一點,我覺得它很優(yōu)雅:)


import string

# Remove the `_@` below for base62, now it has 64 characters

BASE_LIST = string.digits + string.letters + '_@'

BASE_DICT = dict((c, i) for i, c in enumerate(BASE_LIST))


def base_decode(string, reverse_base=BASE_DICT):

    length = len(reverse_base)

    ret = 0

    for i, c in enumerate(string[::-1]):

        ret += (length ** i) * reverse_base[c]


    return ret


def base_encode(integer, base=BASE_LIST):

    if integer == 0:

        return base[0]


    length = len(base)

    ret = ''

    while integer != 0:

        ret = base[integer % length] + ret

        integer /= length


    return ret

用法示例:


for i in range(100):                                    

    print i, base_decode(base_encode(i)), base_encode(i)


查看完整回答
反對 回復(fù) 2019-10-05
?
RISEBY

TA貢獻1856條經(jīng)驗 獲得超5個贊

下面的解碼器制造商可以使用任何合理的基礎(chǔ),具有更整潔的循環(huán),并在遇到無效字符時給出明確的錯誤消息。


def base_n_decoder(alphabet):

    """Return a decoder for a base-n encoded string

    Argument:

    - `alphabet`: The alphabet used for encoding

    """

    base = len(alphabet)

    char_value = dict(((c, v) for v, c in enumerate(alphabet)))

    def f(string):

        num = 0

        try:

            for char in string:

                num = num * base + char_value[char]

        except KeyError:

            raise ValueError('Unexpected character %r' % char)

        return num

    return f


if __name__ == "__main__":

    func = base_n_decoder('0123456789abcdef')

    for test in ('0', 'f', '2020', 'ffff', 'abqdef'):

        print test

        print func(test)


查看完整回答
反對 回復(fù) 2019-10-05
  • 3 回答
  • 0 關(guān)注
  • 1084 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號