[Python] Da intero a stringa in base62.

Daniele Zambelli daniele.zambelli a gmail.com
Mar 15 Nov 2022 15:46:19 CET


Una riscrittura della funzione in cui si può indicare anche la stringa
dei simboli:

def base62(n,
           symbols='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'):
    """Converte un intero in base 10 ad una stringa
che rappresenta il numero nella base indicata dalla sequenza di simboli,
valore di default base 62.
Author: Federico Figus
Modified by Gabriel Battaglia Kriyaban 9/5/2013
Modified by Daniele Zambelli 15/11/2022
>>> base62(8)
'8'
>>> base62(-6)
'-6'
>>> base62(10)
'a'
>>> base62(-15)
'-f'
>>> base62(25)
'p'
>>> base62(35)
'z'
>>> base62(62)
'10'
>>> base62(0)
'0'
>>> base62(0.5)
'is not integer!'
"""
    if n != int(n):
        return "is not integer!"
    segno = ''
    if n < 0:
        segno = '-'
        n = -n
    elif n == 0:
        return '0'
    out = []
    while n:
        n, r = divmod(n, len(symbols))
        out.append(r)
    out.reverse()
    return segno + ''.join(symbols[l] for l in out)

if __name__ == "__main__":
    import doctest
    doctest.testmod(verbose=True)

Ciao.

Il giorno mar 15 nov 2022 alle ore 15:22 <iz4apu a libero.it> ha scritto:
>
> ….non è carino no, ma bisogna vedere se funzionerebbe comunque, passandole un negativo.
>
> Oppure andrebbe riscritta la funzione.



-- 

Daniele

www.matematicadolce.eu

Perché la scuola,
invece di essere un luogo dove ci si allena a imparare,
è un luogo dove si fa finta di sapere?


Maggiori informazioni sulla lista Python