[Python] l'amore per il pitone
Lorenzo Sutton
lorenzofsutton a gmail.com
Mer 18 Set 2013 00:14:06 CEST
On 17/09/13 23:19, Piergiuliano Bossi wrote:
> 2013/9/17 Lorenzo Sutton <lorenzofsutton a gmail.com
> <mailto:lorenzofsutton a gmail.com>>
>
>
> Domanda, forse naive. A parte la soddisfazione/divertimento di
> costruire dei one-liner qual è il vero vantaggio di tale
> super-sinteticità? perché non scrivere il codice "per esteso"? Esempio:
>
> >>> number_list = [2, -4, 27, 44, 13, 0]
> >>> up_limit = 5
> >>> counter = 0
> >>> for i in number_list:
> ... if i > up_limit:
> ... counter += 1
> ...
> >>> counter
> 3
>
> Inserito in un contesto più complesso, così non un po' più chiaro?
>
>
> :D
>
> N risposte, tutte vere dal mio punto di vista, alcune estremamente
> soggettive:
> 1) 1000 anni di lavoro in Java ti portano a idolatrare la sinteticita' e
> detestare la verbosita'
> 2) meno codice scrivo e meno bugs ho
> 3) meno codice scrivo e piu' devo alzare il livello di astrazione e piu'
> alzo anche il livello di riuso
> 4) non so perche', ma io veramente capisco piu' facilmente e piu'
> velocemente il seguente (in Scala) rispetto a quello che hai scritto tu:
> a.count(_ > 5)
Tutti punti validi e forse come dici tu soggettivi.
A me piace l'idea di esplicitare l'algoritmo, certo in questo caso è
talmente banale che forse è un esempio poco significativo.
Se dovessi definire l'algoritmo per eseguirlo io con carta e penna (o a
mente) farei così: scorro ogni elemento della lista, se è maggiore di 5
aggiungo 1 a un "contatore" (mentale, una segnetto che faccio su un
foglio, un dito...). Quando ho finito di scorrere tutti i numeri vedo il
valore del contatore.
Tornando al titolo del topic... una delle cose che amo di Python è che
riesco a "esprimere" questi ragionamenti e a tradurli in codice meglio e
più velocemente rispetto ad altri linguaggi che ho usato... Anche qui
questioni soggettive forse.
Ciao.
Lorenzo.
Maggiori informazioni sulla lista
Python