[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