Mes erreurs en Python à NE PLUS REPRODUIRE !!!

Voici quelques erreurs techniques à ne pas reproduire quand on commencer à prendre en main le langage :

  • Une chose par ligne !!
cond1 = <complex comparison>
cond2 = <other complex comparison>
if cond1 and cond2:
# do something

Plutôt que 

if <complex comparison> and <other complex comparison>:
    # do something
  • Utiliser des Sets ou des Dictionnaires plutôt que des listes, parfois.

Les Sets sont plus performante pour la recherche si la collection est longue, s’il n’y a pas d’éléments dupliqués, si on est amené à souvent rechercher.
A la différence des listes où la recherche d’un élément dans une liste se fait en parcourant les éléments un à un, les Sets et Dictionnaires utilisent une table de hashage. Le hashage prend un peu de temps à la configuration, c’est pourquoi, sur de longues listes, il est plus intéressant d’utiliser des Sets ou Dictionnaires. 

OperationAverage caseWorst case
List : x in sO(n)
Set : x in sO(1)O(n)
Dic : get itemO(1)O(n)

 Source : https://wiki.python.org/moin/TimeComplexity

  • Une autre erreur a été de ne pas utiliser le paquet pep8/pycodestyle pour rendre le code conforme.

autopep8 pour le formatage par rapport aux guidelines de pep8 (utiliser 4 espaces pour l’identation, encoder les fichiers en ASCII or UTF-8, un import par ligne, les classes en CamelCase et les fonctions avec_des_underscores en lovercase, etc.). –ignore permet d’ignorer des recommandations ou warnings.

 Source : https://pycodestyle.readthedocs.io/en/latest/

  •   Les listes en compréhensions partout.