Vous êtes sur la page 1sur 4

IPEI EL MANAR Module II : Environnement de développement Python 3 Année universitaire : 2015/2016

Partie 3 : Initiation à la programmation Python

1. Introduction
On a jusqu’ici utilisé Python en mode interactif, à la manière d’une calculatrice. Les instructions (ou
commandes) sont ainsi, l’une après l’autre, entrées au clavier, interprétées et suivies d’un résultat
souvent réutilisé par la suite. une séquence d’instructions peut être sauvegardée dans un fichier texte (on
parle de script Python).On peut dès lors ouvrir ce script et l’exécuter, de façon automatisée
2. Entrée au clavier (input) et affichage à l’écran (print)
L’expression input(message ) affiche message à l’écran (sans passer à la ligne), attend que l’utilisateur
valide par “Entrée” une réponse au clavier, et renvoie cette réponse sous forme de chaîne de caractères.
>>> n = input("entrez un entier: ") # ici on va placer la réponse dans la variable n
………………………………………………………………………………………………………………………………………………….
>>> n # le contenu de la variable n est une chaîne de caractères
………………………………………………………………………………………………………………………………………………….
On peut directement convertir la réponse reçue par input en un type particulier (int et float notamment) :
>>> n = int(input("entrez votre réponse: "))
………………………………………………………………………………………………………………………………………………….
>>> n # ici la variable n contient bien un entier
………………………………………………………………………………………………………………………………………………….
On voit que les chaînes de caractères sont affichées sans leurs délimiteurs extérieurs (guillemets ou
apostrophes).
On peut préciser un autre séparateur avec l’option sep=. Un affichage par print se termine par un
passage à la ligne (mais on peut préciser un autre mode de terminaison avec l’option end=)
>>> print("a ", 11, "b ", 2222, "c ", 333); print("d ", 1/3, "e ", 1/7);
………………………………………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………………………………………….
>>> print("a ", 1, "b ", 2, "c ", 3, sep= "** ", end= " --- ")
………………………………………………………………………………………………………………………………………………….

3. L’importance fondamentale de l’indentation en Python


Dans un même bloc, deux instructions de même profondeur logique doivent avoir strictement la même
indentation. Avec une telle convention, il est inutile de marquer le début et la fin d’un bloc par des
éléments du langage (comme des accolades, ou les mots réservés begin et end).
On est aidé en cela par l’éditeur de Idle, qui augmente automatiquement l’indentation après chaque
instruction d’en tête, et qui conserve cette indentation à l’intérieur du bloc courant. Pour sortir d’un bloc
(donc diminuer l’indentation), un simple appui sur la touche d’effacement arrière.
4. Les structures conditionnels if...elif...else...
La clause if simple permet d’exécuter un bloc d’instructions si la condition est vraie :
if condition : # si condition est vraie
bloc_si_condition_vraie # alors on parcourt ce bloc
On peut rajouter une clause else (facultative) pour exécuter un autre bloc si la condition est fausse :
if condition : # si condition est vraie
bloc_si_condition_vraie # alors on parcourt ce bloc
else : # sinon
bloc_si_condition_fausse # alors on parcourt ce bloc
Plutôt que d’emboîter des clauses if, on peut utiliser une clause if suivie par une (des) clause(s) elif :

Classe : 1ère Année MP, PC, PT Page 1


IPEI EL MANAR Module II : Environnement de développement Python 3 Année universitaire : 2015/2016

if condition1 : # si condition1 est vraie


bloc1_si_C1_vraie # alors on exécute ce bloc1
elif condition2 : # sinon si condition2 est vraie
bloc2_si_C1_fausse_mais_C2_vraie # alors on exécute ce bloc2
elif condition3 : # sinon si condition3 est vraie
bloc3_si_C1C2_fausses_mais_C3_vraie # alors on exécute ce bloc3
...
elif conditionN : # sinon si conditionN est vraie
blocN_si_CN_première_à_être_vraie # alors on exécute ce blocN
else : # (facultatif) si toutes les conditions sont fausses
bloc_else # alors on exécute ce bloc
Remarques :
 dans toutes les constructions ci-dessus, au plus un bloc est parcouru.
 ne pas oublier le caractère “deux points” qui termine chacune des lignes d’en-tête ! ! !
 se souvenir que si un bloc se réduit à une instruction, on peut le placer directement après le “ :”
5. Expressions conditionnelles
Python offre la possibilité de former des expressions dont l’évaluation est soumise à une condition.
La syntaxe est la suivante : expression1 if condition else expression2
Le résultat est bien sûr l’évaluation de expression1 si la condition est vraie, et sinon expression2.
Remarque : cette construction ne permet pas l’utilisation du mot réservé elif (mais on voit sur le
deuxième exemple ci-dessous comment emboîter deux expressions conditionnelles).
>>> x = -1; print("x positif" if x>0 else "x négatif ou nul")
………………………………………………………………………………………………………………………………………………….
>>> x = 0; print("x positif" if x>0 else "x négatif" if x<0 else "x nul")
………………………………………………………………………………………………………………………………………………….
6. Structures itératives
a) La structure (while)
Pour répéter un bloc d’instructions tant qu’une condition est réalisée, Python propose la clause while :
while condition : # tant que la condition est vraie
bloc_si_condition_vraie # alors on parcourt ce bloc

Quelques remarques classiques sur ce genre de construction :


 si condition est fausse dès le départ, le bloc qui suit n’est jamais parcouru.
 dans la plupart des cas, le bloc qui suit l’instruction d’en-tête while agit sur la condition, de sorte que
celle-ci, vraie au départ, devient fausse et provoque la sortie de la clause.
La structure while peut être complétée par une clause else, exécutée si la condition est fausse :
while condition : # tant que la condition est vraie
bloc1_si_condition_vraie # alors on exécute ce bloc
else : # mais quand la condition devient fausse
bloc2_si_condition_fausse # alors on exécute ce bloc
# sauf si on est sorti de bloc1 par l’instruction break

L’utilisation de else attaché à un while est rare. Le bloc2 ci-dessus est en effet parcouru une seule fois,
quand la condition devient fausse, sauf si on sort du bloc n°1 par une instruction break (auquel cas bloc2
est ignoré).

Classe : 1ère Année MP, PC, PT Page 2


IPEI EL MANAR Module II : Environnement de développement Python 3 Année universitaire : 2015/2016

b) Notion d’intervalle
On est souvent amené à répéter plusieurs fois un bloc d’instructions en fonction des valeurs successives
d’un compteur. Une façon simple (mais c’est loin d’être la seule) d’indiquer la plage des valeurs
possibles de ce compteur est d’utiliser un intervalle (ou encore range dans le langage Python) :

 la syntaxe est range(a,b,h) où a, b, h sont des valeurs entières.


 la valeur a (le début de l’intervalle) est facultative, et par défaut elle vaut 0.si a est présent, la
valeur h (le pas de l’intervalle) est facultative, et vaut 1 par défaut.
 l’intervalle range(a,b,h) est formé des valeurs x = a + kh, avec k entier tel que

 retenons que la valeur b est toujours exclue de l’intervalle range(a,b,h)


L’intervalle range(a,b,h) doit être vu comme une succession de valeurs, en partant de a, et en
progressant vers b (sans jamais l’atteindre !), dans le sens croissant ou décroissant selon que le pas est
positif ou négatif. Ainsi :
 l’intervalle range(7) représente la succession des valeurs 0; 1; 2; 3; 4; 5; 6
 l’intervalle range(1,7) représente la succession des valeurs 1; 2; 3; 4; 5; 6
 l’intervalle range(1,7,2) représente la succession des valeurs 1; 3; 5
 l’intervalle range(7,2) est vide (ici le pas a sa valeur par défaut, c’est-à-dire 1)
 l’intervalle range(7,2,-1) représente la succession des valeurs 7; 6; 5; 4; 3
 si a≤b, l’intervalle range(a,b) est formé de b-a valeurs (il est notamment vide si a = b)
Pour tester l’appartenance d’une valeur à un intervalle, on utilise le mot in (résultat True ou False).
Attention : les intervalles dont il est question ici sont des échantillons de valeurs entières, ce ne sont
donc pas des intervalles au sens mathématique du terme. Voici quelques exemples :
>>> r = range(100,1000,2) # intervalle des entiers pairs, de 100 inclus à 1000 exclu.
>>> 100 in r # 100 fait-il partie de l’intervalle, réponse oui.
………………………………………………………………………………………………………………………………………………….
>>> 1000 in r # 1000 fait-il partie de l’intervalle, réponse non.
………………………………………………………………………………………………………………………………………………….
>>> 513 in r # 513 fait-il partie de l’intervalle, réponse non.
………………………………………………………………………………………………………………………………………………….
7. La structure (boucles for)
Pour répéter un certain nombre de fois un bloc d’instructions, on utilisera la construction suivante :
>>>for variable in objet : # pour chaque élément (nommé pour l’occasion variable ) de objet
bloc_d’instructions # on parcourt ce bloc

En fait, objet est ici est toute construction susceptible d’être parcourue : on pense bien sûr aux
intervalles (range), mais aussi aux chaînes (parcourues caractère par caractère), aux listes, aux tuples,
aux dictionnaires (on en parlera plus tard).
>>>for k in range(0,10): # pour k = 0, puis k = 1, etc. jusqu’à k = 9
bloc_d’instructions # on parcourt ce bloc
>>>for x in ‘abcdef’: # pour x = ’a’, puis x = ’b’, etc. jusqu’à x = ’f’
bloc_d’instructions # on parcourt ce bloc
La construction for peut être complétée par une clause else, parcourue quand la boucle est terminée :
>>>for variable in objet : # pour chaque élément (nommé pour l’occasion variable) de objet
bloc1_d’instructions # on parcourt ce bloc
else : # quand la boucle est terminée
bloc2_d’instructions # on parcourt ce bloc

Classe : 1ère Année MP, PC, PT Page 3


IPEI EL MANAR Module II : Environnement de développement Python 3 Année universitaire : 2015/2016

L’utilisation de else attaché à une boucle for est assez rare. Le bloc2 ci-dessus est en effet parcouru une
seule fois, quand la boucle est terminée, sauf si on sort du bloc n°1 par une instruction break (auquel cas
bloc2 est ignoré).

8. Les instructions break, continue :


Le bloc qui fait suite à l’instruction while ou for peut contenir deux instructions particulières, souvent
attachées à un test if :
 break provoque la sortie immédiate de la clause while ou for.
 continue permet de passer directement à l’itération suivante dans une boucle for ou while. (ce qui
restait du bloc après continue est donc ignoré).

Exemple 1 : tester si un entier premier ou non

solution 1 : solution 2 :

N=int(input("Tapez le nombre N : ")) import math


i=2 n=int(input("Tapez le nombre n : "))
while i < N//2: premier = True
if N % i ==0: for i in range(2, int(math.sqrt(n))+1):
break if n % i == 0:
i+=1 premier=false
if i == N//2: break
print(N, "est premier") if premier:
else: print(n, "est premier")
print(N,"est non premier") else:
print(n,"est non premier")

Exemple : Affiche les entiers inférieurs à N+1 en excluant les multiples de 10:

N=int(input("Tapez le nombre N : "))


for i in range(1,N+1):
if i % 10 == 0 :
continue
print(i,end=' ')

Classe : 1ère Année MP, PC, PT Page 4

Vous aimerez peut-être aussi