[Python] Da intero a stringa in base62.

Carlo Miron miron a python.it
Mar 15 Nov 2022 14:55:50 CET


probabilmente ti conviene modificare il test

if n<0: n=0

con un

if n<=0: return "0"

Il giorno mar 15 nov 2022 alle ore 14:06 <iz4apu a libero.it> ha scritto:
>
> Ciao a tutti.
>
> Ho questa funzione che scrissi 9 anni fa con l'aiuto di uno di voi della lista, Federico Figus, che converte un qualsiasi intero in una stringa in base 62: 10 cifre + 26 lowercase + 26 uppercase.
>
> Il problema è che se passo uno 0, non mi restituisce "0" come dovrebbe, ma una stringa "".
>
>
>
> Qualcuno vede il perché?
>
>
>
> def base62(n):
>
>                 '''Converte un intero in base 10 ad una stringa in base 62.
>
>                 Author: Federico Figus
>
>                 Modified by Gabriel Battaglia Kriyaban 9/5/2013
>
>                 Version 2, 15/11/2022
>
>                 '''
>
>                 import string
>
>                 b = string.digits+string.ascii_letters
>
>                 n=int(n)
>
>                 if n<0:
>
>                                n=0
>
>                 out = []
>
>                 while n:
>
>                                out.append(n%62)
>
>                                n = int(n/62)
>
>                 return ''.join(b[l] for l in out)[::-1]
>
>
>
> Gabriele Battaglia (Gabe / Gabry) - IZ4APU
>
> --... ...--  -.. .  .. --.. ....- .- .--. ..-  - ..-  . .
>
> Sent from Outlook on Windows, Genus Bononiae's computer. (Libero)
>
>
>
> _______________________________________________
> Python mailing list
> Python a lists.python.it
> https://lists.python.it/mailman/listinfo/python



-- 
!!!! THE 🍺-WARE LICENSE (Revision ㊷):
    <miron🐌🐍.🇮🇹> wrote this 📧. As long as you retain this notice you can
    do whatever you want with this stuff. If we meet some day, and you
    think this stuff is worth it, you can buy me a 🍺 in return. — Carlo


Maggiori informazioni sulla lista Python