python download tutorial - Qual è il codice sorgente del modulo "questo"?





2 Answers

Se vuoi fare la sostituzione ROT13 a mano - o nella tua testa - puoi controllare che, poiché 13 * 2 = 26 (il numero delle lettere dell'alfabeto inglese), è essenzialmente uno scambio:

a <-> n
b <-> o
c <-> p
...
m <-> z

A <-> N
B <-> O
C <-> P
...
M <-> Z 

Vs lbh cenpgvfr ybat rabhtu, lbh'yy riraghnyyl znfgre gur Mra bs EBG-13 nytbevguz naq ernq guvf Xyvatba ybbxvat grkgf jvgubhg pbzchgre uryc.

guide wikipedia mac

Se apri un interprete Python e scrivi "importa questo", come sai, stampa:

Lo Zen di Python, di Tim Peters

Bello è meglio che brutto.
L'esplicito è meglio che implicito.
Semplice è meglio che complesso.
Il complesso è meglio che complicato.
Flat è meglio di nidificato.
Sparse è meglio che denso.
Conta la leggibilità
I casi speciali non sono abbastanza speciali da infrangere le regole.
Anche se la praticità batte la purezza.
Gli errori non dovrebbero mai passare in silenzio.
Salvo esplicitamente tacere.
Di fronte all'ambiguità, rifiuta la tentazione di indovinare.
Ci dovrebbe essere uno - e preferibilmente solo un modo - ovvio per farlo.
Anche se in quel modo potrebbe non essere ovvio all'inizio, a meno che tu non sia olandese.
Ora è meglio che mai.
Anche se non è mai spesso meglio di adesso.
Se l'implementazione è difficile da spiegare, è una cattiva idea.
Se l'implementazione è facile da spiegare, potrebbe essere una buona idea.
I namespace sono una delle grandi idee - facciamo di più!

Nel sorgente python (Lib / this.py) questo testo è generato da una curiosa porzione di codice:

s = """Gur Mra bs Clguba, ol Gvz Crgref

Ornhgvshy vf orggre guna htyl.
Rkcyvpvg vf orggre guna vzcyvpvg.
Fvzcyr vf orggre guna pbzcyrk.
Pbzcyrk vf orggre guna pbzcyvpngrq.
Syng vf orggre guna arfgrq.
Fcnefr vf orggre guna qrafr.
Ernqnovyvgl pbhagf.
Fcrpvny pnfrf nera'g fcrpvny rabhtu gb oernx gur ehyrf.
Nygubhtu cenpgvpnyvgl orngf chevgl.
Reebef fubhyq arire cnff fvyragyl.
Hayrff rkcyvpvgyl fvyraprq.
Va gur snpr bs nzovthvgl, ershfr gur grzcgngvba gb thrff.
Gurer fubhyq or bar-- naq cersrenoyl bayl bar --boivbhf jnl gb qb vg.
Nygubhtu gung jnl znl abg or boivbhf ng svefg hayrff lbh'er Qhgpu.
Abj vf orggre guna arire.
Nygubhtu arire vf bsgra orggre guna *evtug* abj.
Vs gur vzcyrzragngvba vf uneq gb rkcynva, vg'f n onq vqrn.
Vs gur vzcyrzragngvba vf rnfl gb rkcynva, vg znl or n tbbq vqrn.
Anzrfcnprf ner bar ubaxvat terng vqrn -- yrg'f qb zber bs gubfr!"""

d = {}
for c in (65, 97):
    for i in range(26):
        d[chr(i+c)] = chr((i+13) % 26 + c)

print "".join([d.get(c, c) for c in s])






Related


Tags

python