Originariamente inviata da
chumkiu
L'obbligo dell'indentazione per esempio
Questa invece per me è la trovata migliore. L'indentazione è un bene, il codice non indentato è illeggibile. Costringere ad indentare è cosa buona e giusta, e soprattutto l'indentazione è sempre giusta (=corrispondente ai blocchi compresi dall'interprete) per definizione (a differenza di linguaggi C-like dove un blocco indentato in maniera errata può farti sfuggire un bug).
o per fare un ciclo for devi creare un array (range(1,100))
Perché il "for" di Python è il "for each" di altri linguaggi; ma il linguaggio e i container sono fatti in maniera tale per cui nella gran parte dei casi iteri sul container, non sugli indici. Ovvero, se voglio esaminare gli elementi di una lista non faccio
codice:
for i in range(0, len(lista)):
print lista[i]
ma direttamente
codice:
for elem in lista
print elem
o, se mi serve anche l'indice,
codice:
for i, elem in enumerate(lista):
print i, elem
In ogni caso, è vero che creare una lista completa per ogni range in Python può essere inefficiente, motivo per cui in Python 3 range è stato rimpiazzato con l'ex-xrange (che restituisce un generator con lazy evaluation).
e se ti serve un for sui numeri pari devi usare una comprensione di lista.
Perché mai?
codice:
for i in range(0, 100, 2):
print i
(e le list comprehension, e soprattutto i sequence object, sono un'idea fottutamente geniale)
"True" e "False" sono case sensitive.
Perché non dovrebbero esserlo? Tutto in Python è case sensitive. Se convenga che un linguaggio sia case sensitive o case insensitive è questione su cui non intendo addentrarmi, la cosa fondamentale è che sia coerente (e non che faccia cose a caso tipo PHP, in cui le variabili sono case sensitive, le funzioni no, le costanti solo quando c'è la luna piena).
Per carità... è simpatico. Potente per certi versi... ma non bello
(IMO)
Se non è bella la sintassi Python non so cosa si può dire di PHP, Perl, C++, bash, ...