Ciao,
grazie per i complimenti ma è facile scrivere codice così leggero grazie
alla sintassi di python
print ''.join(base[l] for l in out)[::-1]
praticamente l'espressione base[l] for l in out non fa altro che creare un
generatore che itera sui moduli calcolati precedentemente, e poi prende
ogni l-esimo valore nella stringa base, questo generatore viene passato al
join che concatena tutti i valori resi dal generatore con la stringa vuota
che chiama il join, a questo punto hai la stringa che cercavi ma al
contrario, quindi usi il terzo campo dello slice [inizio:fine:passo] per
creare una sequenza della stringa col passa al contrario.
Spero di essere stato chiaro, è la prima volta che partecipo a questa
mailing list :D
Comunque puoi trovare tutto sull documentazione in queste pagine
http://docs.python.org/2/tutorial/datastructures.html#list-comprehensions
http://docs.python.org/2/reference/expressions.html#calls
P.S. ci sono altri modi per farlo (anche in una riga sola) ma lascio a te
il divertimento ;)
2013/5/8 Gabriel Battaglia (Kriyaban) iz4...@libero.it
Ciao Federico.
Che bello il tuo codice, ha qualcosa che non avevo mai incontrato prima.
Ti va se ne parliamo un attimo?
***CODE HERE***
import string
# E... fin qui... :)
base = string.printable[:36]
# Potevo arrivarci ma ho guardato l'help di string.prontable... :) Vero,
Python ha proprio le batterie incluse è?
n = int(gabriel, 36)
# Questa riga l'ho tolta perchè voglio che n venga ricevuta come parametro
dalla funzione che mi sto scrivendo.
out = []
# Ok, qui prepariamo la lista contenitore.
while n:
# Significa finchè n è vera, cioè diversa da 0, giusto?
out.append(n%36)
# Qui aggiungiamo il resto della divisione fra n e 36 che sarà sempre
un intero compreso fra 0 e 35
n = n/36
# ok
print ''.join(base[l] for l in out)[::-1]
# Qui arriva la sorpresa... un ciclo for annidato dentro ad un...??
# me la spieghi meglio?
Io non sarei mai riuscito a produrre un tale concentrato di efficienza ed
eleganza messe assieme.
G.
__**_
Python mailing list
Python@lists.python.it
http://lists.python.it/**mailman/listinfo/pythonhttp://lists.python.it/mailman/listinfo/python
--
*Federico Figus*
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python