Comparé à des langages tels que Perl, Python possède un nombre limité de constructions de contrôle: 
- seulement 
ifet non unless, 
- seulement 
forque itère sur des séquences et pas foreachou C-style for, 
- seulement 
whilecela vérifie une condition à chaque boucle et non do-while, 
- seulement 
if-elifet non switch, 
- il n'y a qu'une seule construction de commentaire, le 
#, et pour chaque ligne, vous pouvez dire si elle est commentée ou non, sans regarder les lignes précédentes. 
En outre, il existe presque une façon d'indenter votre source; la plupart des cas d'indentation créative sont syntaxiquement exclus.
Cela facilite l'analyse d'une source Python pour les humains.
Il existe des tentatives pour être minimal mais complet dans les types intégrés et la bibliothèque standard.
- pour la liste mutable, vous utilisez le seul type intégré 
list; c'est O (1) pour la plupart des opérations, et vous n'avez jamais à choisir la bonne implémentation, 
- pour les listes immuables, vous devez également utiliser le 
tupletype, 
- pour les cartes, vous utilisez le seul 
dictoutil intégré qui est sacrément efficace dans la plupart des cas, inutile de vous demander quelle implémentation utiliser. 
Python 3 étend cela aux entiers: quelle que soit la taille de votre entier, vous utilisez le même type et ne vous souciez jamais de la contrainte.
Python essaie d'éviter le sucre syntaxique. Mais parfois, il ajoute du sucre syntaxique simplement pour mettre en évidence le moyen évident. Vous pouvez écrire if foo is not Noneau lieu de if not (foo is None)parce que 'is not' est une casse spéciale. Lit toujours foo is not Nonefacilement, ne peut pas être mal interprété, et vous n'avez pas à penser, vous écrivez simplement la chose évidente.
Bien sûr, la plupart des choses plus complexes en Python peuvent être effectuées de plusieurs manières. Vous pouvez ajouter des méthodes aux classes par déclaration ou par simple affectation d’emplacement, vous pouvez transmettre des arguments à des fonctions de différentes manières, etc. Tout simplement parce que les éléments internes du langage sont principalement exposés.
La clé est qu'il y a toujours un moyen qui se veut être le meilleur, le "cover-all". Si d'autres moyens existent, ils n'ont pas été ajoutés en tant qu'alternatives égales (comme ifet unless), mais ont simplement exposé le fonctionnement interne. Lentement mais sûrement, de telles alternatives sont obsolètes (pas éliminées!) En améliorant le meilleur mécanisme connu.
Les décorateurs encapsulent les appels de fonction AOP. Avant la version 2.6, vous deviez utiliser __metaclass__membre magique pour déclarer la métaclasse d'une classe. Maintenant, vous pouvez aussi utiliser la même syntaxe de décorateur. Avant la version 3.0, vous disposiez de deux types de chaînes, orientées octets et Unicode, que vous pouviez mélanger par inadvertance. Vous avez maintenant le seul Unicode stret le seul transparent binaire bytes, que vous ne pouvez pas mélanger par erreur.
               
              
"""commentaires (docstrings). Celles-ci s'étendent sur plusieurs lignes.