[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