
Originariamente inviata da
chumkiu
codice:
if(a) print("a");
if(b) print("b");
if(c) print("c");
if(d) print("d");
if(e) print("e");
In Python è concesso:
codice:
if a: print "a"
if b: print "b"
if c: print "c"
Volendo strafare, è anche concesso
codice:
if a: print "a"; print "b"
ma non ho mai visto nessuno effettivamente usare la sintassi con il punto e virgola.
C'è stata una discussione anche sul PHP (che è il linguaggio su cui sto il 60% del tempo [e non vado in giro a dire che è bello, ma ci convivo

]).
Ci mancherebbe, PHP è innegabilmente orrido. 
Ma la domanda madre è: perché devo usare una variabile per un valore che DEVE essere costante? In ogni caso non è vitale averne.
Anche qui, sono scelte progettuali... credo che dipenda da due fatti fondamentali:
- per l'interprete Python (in cui tutto è dinamico e alla fine tutti gli oggetti sono hashtable) una costante sarebbe un caso inutilmente speciale di variabile;
- l'idea di fondo di Python è "è più facile chiedere scusa che permesso", per cui il linguaggio tende al lassez-faire più completo; per esempio, le classi Python non hanno "veri" membri privati, ma c'è la convenzione per cui i membri "teoricamente da non toccare" hanno il nome che comincia per underscore (ad un certo punto sono stati implementati i nomi con doppio underscore, che funzionano tramite name mangling, ma di rado li ho visti usare).
Questo atteggiamento consente di evitare di dover fare refactoring allucinanti quando salta fuori un singolo caso in cui bisogna violare un'interfaccia, anche se allo stesso tempo bisogna evitare di partorire mostri (in Python 2 è tranquillamente possibile fare
codice:
matteo@teokubuntu:~$ python
Python 2.7.5+ (default, Sep 19 2013, 13:48:49)
[GCC 4.8.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> True=False
>>> print True
False
>>>
- ma non significa che uno debba farlo
)