Feb 24, 2026

Wiki

Python

Aide

edit SideBar

Search

Une Page Au Hasard


Le if

Remarque préliminaire

Dans les structures qui suivent, comme souvent en python, les espaces en début de ligne sont obligatoires.

  • Elles vont par 4.
  • Une tabulation n'est pas des espaces.

Cette indentation est l'unique information permettant de savoir quand commencent et finissent les blocks des différentes structures (if, while, etc.)

Le if par l'exemple

Premier exemple

Exemple d'utilisation d'une structure « Si ... alors ... sinon ... » :

  >>> if 'a' < 'c' :
  ...     print "a est plus petit que c"
  ... else :
  ...     print "a est plus grand que c"
  ...

Dit autrement, si 'a' est plus petit que 'c' (dans l'ordre naturel des lettres), alors afficher « a est plus petit que c », sinon afficher « a est plus grand que c».

Deuxième exemple

Exemple d'utilisation d'une structure « Si ... alors ... sinon si ... alors ... sinon ...» :

  >>> if 1 > 2 :
  ...     print "1 est plus grand que 2"
  ... elif 1 == 2 :
  ...     print "1 est egal a 2"
  ... else :
  ...     print "tout va bien"
  ...

(le elif signifie "sinon si...")

Troisième exemple

Exemple d'utilisation d'une structure « Si ... est dans ... alors» :

  >>> c = raw_input("Saisir une lettre")
  >>> if c in "aeiouy" :
  ...     print "Voyelle !"
  ... else :
  ...     print "Consonne !"
  ...

Bref, si le caractère saisi par l'utilisateur est dans le mot "aeiouy", alors afficher voyelle, sinon afficher consonne. Avec un in, le conteneur (ici, la chaîne de caractères "aeiouy") peut aussi être une liste, comme par exemple [0, 2, 4, 6, 8] :

  >>> c = input("Saisir un chiffre")
  >>> if c in [0, 2, 4, 6, 8] :
  ...     print "Pair !"
  ... else :
  ...     print "Impair !"
  ...

Le if dans une égalité

On peut mettre un if, then, else dans une égalité :

  >>> maVariable=monExpression if maCondition else monExpression2

Par exemple, pour coder efficacement le pgcd/ppcm :

  >>> def pgcd(a,b): return a if b == 0 else pgcd(b,a%b)
  >>> def ppcm(a,b) : return a*b/pgcd(a,b)

L'instruction for

Présentation de la méthode range

La méthode range permet de créer rapidement des listes d'entiers :

  • L'instruction range(n) renvoie la liste des entiers de 0 à n-1,
  >>> range(5)
[0, 1, 2, 3, 4]
  • range(a,b) renvoie la liste des entiers de a à b-1.
  >>> range(3,8)
[3, 4, 5, 6, 7]
  • range(a,b,c) renvoie la liste des entiers de a à b-1, avec un pas de c.
  >>> range(3,12,2)
[3, 5, 7, 9, 11]
  • Ce pas peut être négatif :
  >>> range(11,7,-1)
[11, 10, 9, 8]

Notons pour finir que la méthode range ne permet de manipuler que des entiers.

Le range dans le for

La boucle for (pour) peut parcourir tout "itérable" : chaînes de caractères, listes d'entiers ou d'autres objets, tuples... L'itérable de base pour for une liste d'entiers, donc écrite avec range.

Ainsi, lorsque l'on écrit :

  >>> for i in range(5) :
  ...     print i,
  ...

...on obtient 0 1 2 3 4.

Il faut comprendre ce qui précède ainsi : "Pour i parcourant la liste d'entier range(5)=[0,1,2,3,4], afficher i."

Ainsi, pour calculer la somme des 100 premiers entiers, on peut procéder ainsi :

  >>> S = 0
  >>> for k in range(101):
  ...     S = S + k
  ...
  >>> print S
  5050

Notons, pour finir, qu'à la fin de la boucle, la variable de boucle existe toujours, et posséde sa dernière valeur prise :

  >>> for k in range(5):
  ...     print k,
  ... 
  0 1 2 3 4
  >>> k
  4

Le for et les autres itérables

Une chaîne de caractères, comme mot, peut aussi être itérée : il y a un premier caractère, puis un second, etc. On peut donc utiliser un for ici, quand on souhaite demander : pour un caractère dans la chaîne de caractères suivante...

  >>> for lettre in "mot" :
  ...     print lettre,
  ...
  mot

Ainsi, on l'a dit, une boucle for peut parcourir une liste, un tuple ou une chaîne de caractères.

A choisir, il vaut mieux utiliser for avec un itérable non modifiable (une chaîne de caractères, un tuple plutôt qu'une liste). En effet, for évalue dynamiquement les éléments à chaque cycle, et des effets de bords imprévisibles peuvent survenir si la liste itérée a été modifiée.

Comparer, par exemple, les deux boucles suivantes :

  >>> liste = [1, 2, 3]
  >>> for k in liste:
  ...     print k
  ...     liste = []
  ...  
  1
  2
  3
  >>> liste = [1, 2, 3]
  >>> for k in liste:
  ...     print liste[k-1]
  ...     liste = []
  ... 
  1
  Traceback (most recent call last):
    File "<stdin>", line 2, in <module>
  IndexError: list index out of range

>>>

pass, continue et break

Pour faciliter l'écritures de boucles, Python utilise trois mots-clés :

pass
ne fait rien.
continue
interromp l'exécution d'une boucle, mais reprend au début de cette boucle à l'itération prochaine.
break
arrête définitivement la boucle.

L'instruction while

while par l'exemple

Un petit exemple d'utilisation du while (du tant que ..., faire ...) :

  >>> i=0
  >>> while i<4 :
  ...     print i
  ...     i+=1
  ...

Par exemple, si l'on souhaite obtenir le $n$ tel que $1+2+3+..+n$ dépasse pour la première fois 1000, on peut procéder ainsi :

  >>> S = 0
  >>> n = 1
  >>> while S < 1000 :
  ...     S = S + n
  ...     n = n + 1
  ...
  >>> print n
  46

A noter, une fois encore, que l'on peut utiliser une instruction break pour quitter une boucle while :

  >>> i=0
  >>> while 1 :
  ...     i+=1
  ...     if i>5 :
  ...         break
  ...


This page may have a more recent version on pmwiki.org: PmWiki:UnePageAuHasard, and a talk page: PmWiki:UnePageAuHasard-Talk.

Page Actions

Recent Changes

Group & Page

Back Links