Rispetto a linguaggi come Perl, Python ha un numero limitato di costrutti di controllo: 
-  solo   ife nessununless,
-  solo   forche scorre su sequenze e senzaforeacho C-stylefor,
-  solo   whileche controlla una condizione ogni ciclo e nessunado-while,
-  solo   if-elife nessunswitch,
-  c'è solo un costrutto di commento,   #, e per ogni riga puoi dire se è commentato o meno, senza guardare le righe precedenti.
 Inoltre, c'è quasi un modo per indentare la tua fonte; la maggior parte dei casi di indentazione creativa sono sintatticamente esclusi. 
 Questo rende l'analisi di una fonte Python più facile per gli esseri umani. 
 Ci sono tentativi di essere minimi ma completi nei tipi built-in e nella libreria standard. 
-  per la lista mutabile si usa l'unico tipo built-in   list; è O (1) per la maggior parte delle operazioni e non devi mai scegliere l'implementazione corretta,
-  per gli elenchi immutabili, allo stesso modo, devi solo usare il tipo   tuple,
-  per le mappe, si utilizza l'unico   dictincorporato che è dannatamente efficiente nella maggior parte dei casi, non occorre riflettere su quale implementazione utilizzare.
 Python 3 estende questo valore ai numeri interi: non importa quanto sia grande il numero intero, si usa lo stesso tipo e non si preoccupa mai della coercizione. 
 Python cerca di evitare lo zucchero sintattico. Ma  a volte  aggiunge zucchero sintattico solo per rendere ovvio il modo ovvio. Puoi scrivere   if foo is not None    invece di   if not (foo is None)    perché 'is not' è di tipo speciale. Ancora   foo is not None    legge facilmente, non può essere interpretato male, e non devi pensare, scrivi semplicemente la cosa ovvia. 
 Naturalmente, la maggior parte delle cose più complesse in    in Python possono essere eseguite in diversi modi. Puoi aggiungere metodi alle classi per dichiarazione o per assegnazione di slot semplice, puoi passare argomenti a funzioni in un certo numero di modi creativi, ecc. Questo perché gli interni della lingua sono per lo più esposti. 
 La chiave è che c'è sempre un modo che è destinato a essere il migliore, il caso di copertura. Se esistono altri modi, non sono stati aggiunti come alternative uguali (come   if    e   unless   ) ma si limitano a esporre i meccanismi interni. Lentamente ma costantemente tali alternative sono obsolete (non eliminate!) Migliorando il meccanismo migliore noto. 
 I decoratori eseguono il wrap delle chiamate AOP. Prima di 2.6 dovevi usare   __metaclass__    magic member per dichiarare il metaclasse di una classe; ora puoi usare la stessa sintassi del decoratore anche per questo. Precedentemente alla versione 3.0 avevi due tipi di stringhe, orientate ai byte e Unicode, che potresti inavvertitamente mescolare. Ora hai l'unico% Unicode% co_de e l'unico   str    trasparente binario, che non puoi mescolare per errore.