Ceci est une ancienne révision du document !


Introduction

Python est né au début des années 1980, son père est Guido van Rossum. Sa version actuelle est la 2.5.1.

Python est présent partout, vous l'utilisez tous les jours avec Ubuntu, red hat en use et abuse, de même que google (van Rossum est employé par Google). Vous avez aussi très certainement vu python en action avec Launchpad.

Ce cours est une introduction au langage, en abordant certaines notions de base de la programmation. Le but est d'être clair pour les gens qui n'ont jamais programmé, donc certains "pythonismes" seront volontairement mis de côté. On approfondira dans d'autres sessions.

L'interpréteur de commandes

Python est un langage "interprété", c'est à dire qu'un script ne nécessite pas de compilation pour être exécuté. Il existe un interpréteur qui permet d'interagir avec l'utilisateur. Pour le lancer, démarrez un terminal et lancez :

python

Commençont par une utilisation très simple, en faisant faire du calcul à python :

3*6
4-9

Notion de variable

Les variables correspondent à des zones de stockage de valeurs. Elles sont désignées par des mots contenant les lettres minuscules, majuscules, chiffres et underscore "_". Une variable ne peut avoir un nom commençant par un chiffre.

A une variable on assigne une valeur grâce à l'instruction "=", par exemple (dans l'interpréteur) :

a = 4
b = 5
a + b

Les valeurs contenues par les variables a et b ont été utilisées pour réaliser l'opération.

Une variable doit avoir été initialisée pour être utilisée :

c
c = 1
c

La première et la troisème instruction sont identiques, mais le résultat diffère suivant l'initialisation.

Une variable peut "dépendre" d'elle même :

a = 4
a = a + 1
a

Attention à la casse ! 'A' est différent de 'a'.

Notion de type

On n'a utilisé que des entiers pour l'instant. python l'a remarqué :

a = 5
a / 2

On obtient 2, et pas 2.5. Pourquoi ? python arrondi tout simplement à l'entier inférieur car on lui a suggéré que a est un entier. Comment faire alors ? Préciser à python que a est un "flottant" :

a = 5.0
a / 2

Un autre type très courant est la "chaîne de caractère" (string en anglais). Elle est définie en plaçant du texte entre "" ou entre : une_chaine = "Je suis une chaine." une_chaine On peut 'ajouter' des chaînes, on appelle ça la concaténation: a = "Bonjour " b = "Monde !" a + b Pour mettre le doigt sur une possible confusion, essayons ceci : a = 1 a b = "1" b Notez la différence entre les 2 résultats. La première fois python affiche un entier, la seconde une chaîne de caractères (entre ).

 a+b

Une erreur résulte de ce calcul, puisque a et b sont de type différents.

Premier script

Un des intérêts d'un programme est de pouvoir interagir avec l'utilisateur. On va voir pour ça deux instructions et comment les utiliser :

  • raw_input() permet de demander à l'utilisateur de saisir un texte (texte au sens large, on commencera avec des nombres) ;
  • print permet d'afficher du texte.

Ce sont deux fonctions, qui utilisent un ou plusieurs arguments (des données qu'elles traiteront). Nous aborderons les fonctions un peu plus loin.

raw_input() s'utilise de cette manière :

resultat = raw_input("Veuillez saisir quelque chose : ")

La chaîne de caractère sera affichée à l'écran, et le curseur attendra que l'utilisateur saisisse du text puis <entrée>. Ce qui a été saisi sera alors assigné à la variable résultat (en tant que chaîne de caractère).

Pour ensuite afficher ce texte on peut utiliser :

print "Du texte qui ne change pas et autre chose :", resultat

Les éléments à afficher sont séparés par une virgule, qui apparaitre comme un simple espace lors de l'exécution.

"Du texte qui ne change pas et autre chose :" et resultat sont deux arguments de la fonction print.

Regardons maintenant cet exemple :

#!/usr/bin/env python
# -*- coding: UTF8 -*-

# On demande le nom
nom = raw_input("Quel est votre nom ? ")

# On demande le prénom
prenom = raw_input("Quel est votre prénom ? ")

# On affiche le tout
print "bonjour", prenom, nom

Quelques petites remarques :

  • les lignes qui commencent par '#' ne sont pas lues par python, ce sont des lignes de commentaires. Elle sont utiles pour détailler certains éléments de votre script ;
  • la première ligne est un 'shebang', qui permet à votre shell que savoir avec quel programme lancer votre script lorsqu'il est exécutable (./exemple1.py) ;
  • la seconde définit l'encodage, c'est essentiel pour nous francophones qui utilisont des accents (python n'aime pas vraiment les accents sans encodage précisé).

Copiez ce script dans un fichier exemple.py et exécutez :

python exemple.py

En guise d'exercice, ecrivez un script qui demande l'âge de 2 personnes, et qui affiche la différence d'âge. Rappelez vous que raw_input() récupère une chaîne de caractère, qu'il faudrait transformer en entier pour faire le calcul. La fonction int qui prend en argument une chaine de caratère, et retourne sa conversion en entier.

Conditions

Pour que le script réagisse suivant ce que l'utilisateur à saisi, on utilise des instructions de contrôle, if et else. Elle s'utilisent comme ceci :

if (une_condition_est_vraie):
      # on execute
      # une série
      # d'instructions
else
      # sinon
      # on fait autre chose

La syntaxe est (je pense) assez claire, mais elle amène quelques nouvelles notions.

Les booléens

Une variable booléennes est une variable qui n'accepte que 2 valeurs : vrai ou faux (True ou False en python). On peut étendre ceci aux nombres et dire : si c'est 0 c'est faux, sinon (dans tous les autres cas), c'est vrai. "une_condition_est_vraie" va donc être une expression qui sera soit vraie (ou non nulle), soit fausse (nulle). Si elle est vraie, on exécute la première partie de la condition (juste après if, sinon la deuxième (ce qui suit else).

L'indentation

Pour connaître toutes les instructions à exécuter si la condition est vraie, on définit un "bloc". Ce bloc est défini par une indentation (<tab> en général) :

      # on execute
      # une série
      # d'instructions

Ce bloc sera exécuté si la condition est vérifiée.

Prenons un exemple de comparaison d'entiers :

a = 1
b = 2
if (a > b):
      print "a>b"
else:
      print "b>a"

Quel sera le résultat du script ?

L'expression qui définit la condition est souvent une comparaison, qui utilise les symboles suivants :

  • > et < pour 'strictement supérieur/inférieur à'
  • >= et pour 'supérieur/inférieur ou égal à'
  • == et != pour 'égal à ou différent de'

Les conditions peuvent être multiples et inclure des or et and :

  • a or b sera vraie si soit a, soit b est vraie
  • a and b sera vraie si a et b sont vraie

Vous pouvez maintenant reprendre l'exercice de tout à l'heure et systématiquement afficher un résultat positif.

  • projets/ecole/python/1.1192867141.txt.gz
  • Dernière modification: Le 20/10/2007, 10:15
  • (modification externe)