User Tools

Site Tools


python_cheat_sheet

Python Cheat Sheet

Ceci est un recueil de précisions syntaxiques utiles à l'écriture d'un script banal. (Ni exhaustif, ni explicatif)

Entête (script)

  • Shebang
    #!/usr/bin/env python
  • Encodage
    # -*- coding: utf-8 -*-
  • Commentaire
    #
  • Import
    import nom_module

    ou

    from sys import argv

    NB: cette deuxième manière évite d'avoir à retapper le nom du module en permanence

  • Arguments (passés au script)
    • Argv: (nécessite l'import du module sys)
      argument_1=sys.argv[1]

      (NB: argv[0] renvoie le nom du script)

    • Il existe aussi une implémentation de getopt (cf. Dive into python - CLI)

Packaging

  • Encapsulation pour librairie autonome
    if __name__ == "__main__":
        main()

Variables

  • Listes (mutable)
    a=[1, 'c']
  • Sets (mutable) fournit une interface implémentant les ensembles mathématiques (union, réunion, intersection, etc)
    • Ajouter un élément en fin de liste:
      a.append('d')
  • Tuple (immutable, mais plus performant)
    a=('b', 12)
  • Matrices: installer et importer numpy (http://numpy.scipy.org/)
  • Casts
    • String
      str(2)
    • Integer
      int('2')
    • Tuple
      tuple(['a', 2])
    • Liste
      list(('b', 1))
  • String délimité par ' ou
    • Sur plusieurs lignes
      """Ceci est
      une string
      sur plusieurs lignes"""
    • Concaténation: +
      'Python'+'Cheat Sheet'
    • Inclure des variables
      print "Il y a %d %s dans mon sac" %(nb_fruit, type_fruit)
    • Enlever un retour à la ligne en fin de ligne
      string.rstrip('\n')
    • Traitement de fichiers CSV:
      • Séparer:
        data=string.split(';')
      • Rassembler:
        ';'.join(data)
  • Booleans (True or False)

IO

  • Ouvrir un fichier
    #'r'=read, 'w'=write, 'a'=append, 'r+'=read & write
    fichier=open('/path/to/file','r')
    # il faut alors fermer le fichier
    # une métode qui referme le fichier proprement:
    with open('/tmp/workfile', 'r') as f:
  • IOError (erreur d'entrée sortie)
  • Sortie vers le shell:
    print 'hello'
  • Prompt au shell:
    foo=raw_input("The Ultimate Question of Life, the Universe, and Everything")

    NB: il existe également input(), avec laquelle python essaie de deviner le type de la variable entrée. raw_input() se contente de mettre ça dans une string.

Pour travavailler avec les chemins de fichiers : os.path et notamment os.path.join.

Structure de code

  • Boucle for
    #pour i de 1 à 5
    for i in range(1,5):
        instruction1
        instruction2
  • Opérateur in: test permettant de vérifier si un élément est présent dans un itérable (une liste, un tuple, un fichier, etc).
    if 'x' in 'xml':
        instruction
    for line in fichier:
        instruction
  • Switch/case: en 2.x python ne possède pas de structure switch, on doit se débrouiller avec des if … elif … ou avec la structure suivante:
    options = {0 : zero,
                    1 : sqr,
                    4 : sqr,
                    9 : sqr,
                    2 : even,
                    3 : prime,
                    5 : prime,
                    7 : prime,
    }
     
    def zero():
        print "You typed zero.\n"
     
    def sqr():
        print "n is a perfect square\n"
     
    def even():
        print "n is an even number\n"
     
    def prime():
        print "n is a prime number\n"

    Que l'on peut appeler grâce à:

    options[num]()

    Source: bytebaker.com

  • break permet de sortir de la boucle courrante
  • continue permet de terminer l'itération courrante (passer directement à la suivante, mais sans sortir de la boucle)
  • try … except … raise … else … finally: Gestion des exceptions
    try:
       instructions
    except Error:
        instructions

    else exécute son bloc si toutes les instructions du try ont réussi; finally s'éxécute dans tous les cas.

  • Arrêter le script
    quit()
  • Classe:
    class formatted_string(parent_class):
  • Fonction:
    def function_name(arg1,arg2=10,arg3='foo'):

    NB: les arguments arg2 et arg3 sont optionnels

    • Expansion des arguments dans un appel de fonction:
      args = (1, 2, 3)
      function_name(*args)
      kwargs = {'arg1': [], 'arg2': 10, 'arg3': 'foo'}
      function_name(**kwargs)
  • Fonction anonyme (jettable, pour usage unique):
    lambda arg1, arg2: arg1 + arg2

    Cf doc officielle

  • Test:
    if ((test1) & (test2))|(test3):

RegExps

python_cheat_sheet.txt · Last modified: 2015/01/02 13:03 by ginko