Vous êtes sur la page 1sur 48

 Rendre

Appréciation Évaluation

NSI / Programmation Python / Séance 1

Introduction à la
programmation en
langage python

TD 1:

Objectifs d'apprentissages:
A la 3n de ce cours, vous saurez:

utiliser le notebook Jupyter pour y écrire du texte et exécuter des


programmes simples
utiliser les principaux types de données simples en Python: int, Doat, str,
bool
reconnaître les bonnes pratiques de développement en Python
rappel: les instructions conditionnelles
rappel: les boucles
:
Pourquoi code-t-on ? (exécutez la cellule ci-dessous pour
voir une petite vidéo)

Entrée[5]:  from IPython.display import HTML


HTML("""<iframe width="560" height="315" src="https://www.youtube-n

Sortie[5]:
:
Initiation au langage Python

Pourquoi utiliser le langage Python ?


Pour échanger avec un ordinateur, il faut lui parler en Binary Digit ou Bits. Un bit
ne peut prendre que deux valeurs, 0 ou 1. Ce système binaire est utilisé car c'est
le seul code que la machine est capable comprendre. Le plus souvent, les bits
sont lus par paquet de 8 (= octet). Cela permet aux ordinateurs d'eNectuer des
tâches simples (comparer des valeurs, ajouter des valeurs, les classer, ...). C'est au
programmeur de savoir ce qu'il veut faire et ainsi prévoir l'algorithme.

Un algorithme est une suite d'opérations ou d'instructions permettant de


résoudre un problème ou d'obtenir un résultat (un peu comme suivre une
recette de cuisine).

Cet algorithme est d'abord conçu dans notre langage. Un algorithme utilise deux
éléments essentiels : les variables (qui stockent l'information et qu'il faudra gérer
ou structurer) et les instructions (qui permettent de modi3er l'état des variables).
Il va donc falloir passer de notre langage à celui de l'ordinateur (langage machine
= bits). Pour cela on va écrire un programme dans un langage compréhensible
par l'homme mais qui peut être utilisé par un compilateur (un autre programme
qui véri3e qu'il n'y a pas de d'erreur de syntaxe, de type de variable...) et qui va
produire un nouveau programme appelé exécutable qui sera écrit en langage
machine.
:
Au lycée, vous allez apprendre l’un de ces langages : le langage Python. Vous
l’utiliserez dans diNérentes disciplines : Mathématiques, SNT, Physique-Chimie,
spécialité NSI notamment.

DiSérences collège/lycée

Voici ci-dessous à gauche, un programme écrit dans un langage par blocs et à


droite le même programme écrit dans le langage Python.

Python: pourquoi ?

Python est un langage de programmation mutli-paradigme largement utilisé dans


l'industrie et la recherche.

Raisons de son succès: opensource (donc gratuit), simple et très rapide à


apprendre (car proche du pseudo-code), riche (multiples packages), portable et
interfaçable (c'est à dire compatible) avec d'autres langages: langage C, Fortran ...

Prise en main du Jupyter notebook


Jupyter est une application web permettant de créer des notebooks. Jupyter
permet de programmer en direct en langage Python, langage Julia et langage R. Le
code s’y exécute.

Le notebook Jupyter permet de combiner des sections en langage naturel,


formatées (mises en formes) ou non, et des sections en langage de
programmation dans un même document.

Ceci est une section en langage naturel, écrit avec Markdown, un système
d’édition et de formatage de texte.

for i in range(0,4):
print("i =",i)
:
Ceci est une section en langage naturel écrite sans mise en forme. Elle peut être
modi3ée par vos soins mais ne comporte pas de lignes de code Python
exécutables. La cellule suivante est, quant à elle, une section qui cotient du code
en Python exécutable.

Placez vous dans la cellule et tapez sur ENTREE pour l'exécuter.


Que se passe-t-il ?

Réponse: Retour à la ligne, ENTREE toute seule ne permet pas à


l'exécution du code

Entrée[ ]: 

Entrée[36]:  a=12

Sélectionnez la à nouveau et en appuyez sur shift+ ENTREE. Que


se passe-t-il ?

Réponse: Le code est exécuté

Pour exécuter une cellule de code, vous pouvez également cliquer sur le bouton
[Exécuter], ou encore utiliser le menu Cell>Run Cells. Remarque: Les cellules
Python exécutables de Jupyter Notebook se comportent comme si vous utilisiez
l'interpréteur intéractif de Python.

Executez la cellule suivante en utilisant les 3 façons diNérentes


décrites précédemment:

Entrée[37]:  10+7
Sortie[37]:

Que remarquez-vous à chaque fois que vous exécutez une cellule?


:
Réponse: Le compteur suivant "In" auguement systématiquement.Si
le code fait un calcul mais il n'y a pas d'instruction "print",
notebook rajoute une ligne "Out" pour afficher le résultat.

2. Variables

En informatique, il est indispensable de conserver des informations de natures


diverses. Par exemple, votre smartphone enregistre dans sa mémoire votre
numéro de téléphone, les numéros de téléphones de vos contacts, vos messages
(SMS), vos photos, vos applications, etc. Chacune de ces informations est stockée
à un endroit précis dans la mémoire dans ce qu’on appelle une variable.

Ainsi, de manière simpli3ée, retenez la dé3nition suivante.

Une variable est un espace de stockage de la mémoire (une case mémoire).


Chaque variable est caractérisée par son nom, son type et sa valeur.

Au fait, pourquoi dit-on variable ?

Tout simplement car les données qu’elle contient peuvent varier (au cours du
temps) : si un ami change de numéro de téléphone, vous êtes content de pouvoir
le modi3er. Alors, Les entrées = variables Pour construire un algorithme, nous
avons besoin de deux choses: Des variables et des instructions. Commençons par
dé3nir des variables. Ce sont nos entrées. Elles peuvent être assimilées à des
espaces mémoire dans l'ordinateur où l'on stocke des information. Elles seront
manipulées par les instructions.

Pour dé3nir une variable, il faut lui donner un nom. Evitez absolument les noms
d'instructions!!

Ex de variable:

rappel:

Les lignes commençant par In [ ] sont des lignes où il y aura du code Python. Pour
exécuter le code, sélectionner la cellule et valider avec SHIFT+Entrée. Exécuter
chaque ligne.

Les lignes In [ ] vides sont des lignes que vous devrez compléter.
:
Types de variables
Le type d’une variable est la nature de l’information qu’elle contient. Vous
conviendrez que l’heure de votre réveil et votre dernier SMS reçu n’ont pas la
même nature : le premier correspond à des nombres et le second à du texte.

Dans un premier temps, voici les trois types de base qui nous intéressent :

le type entier : il désigne les entiers relatifs (positifs ou négatifs).


En Python on parle du type int (pour integer qui signi3e « entier » en
anglais) ;
le type Dottant : il désigne les nombres décimaux (à virgule).
En Python on parle du type float (pour hoating qui signi3e « hottant
» en anglais)
le type chaîne de caractères : il désigne toute suite ordonnée de
caractères.
En Python on parle du type str (pour string qui signi3e « chaîne » en
anglais).

Activité 1
Question : Indiquez le type des variables (entier, hottant ou chaîne de
caractères) permettant de stocker sur votre smartphone les informations
suivantes :

le nom d’un contact :


le numéro de téléphone d’un contact:
un SMS :
l’heure du réveil
le code de votre partage de connexion Wi-Fi:
le pourcentage ajché de batterie restante
les notes aux deux derniers devoirs de Mathématiques que vous tapez dans
l’application Calculatrice pour calculer votre moyenne
:
Votre réponse (à compléter):

- le nom d’un contact : chaîne de caractères


- le numéro de téléphone d’un contact : entier
- un SMS :chaîne de caractères
- l’heure du réveil : chaîne de caractères
- le code de votre partage de connexion Wi-Fi : chaîne de
caractères
- le pourcentage affiché de batterie restante :chaîne de
caractères ou entier "+" chaîne de caractères
- les notes aux deux derniers devoirs de Mathématiques que vous
tapez dans l’application Calculatrice pour calculer votre
moyenne : flottant
:
Noms de variables (en Python)
Chaque variable possède un nom qui permet d’identi3er l’emplacement mémoire
correspondant.

Dans le langage Python, il y a des règles à respecter pour nommmer les variables.
Voici celles qui vous concernent :

Règle 1 : un nom ne peut contenir que des lettres (a-z, A-Z), des chiNres
(0 - 9) et le caractère _ (underscore).
Règle 2 : un nom ne peut pas commencer par un chiNre.
Règle 3 : les noms sont sensibles à la casse, cela signi3e qu’il y a une
distinction entre les minuscules et les majuscules : la variable nommée
snt est diNérente de la variable Snt .
(Règle 4) : il est préférable de toujours choisir un nom de variable
représentatif : par exemple, si vous voulez stocker le nom d’une
personne dans une variable, il est préférable de l’appeler nom plutôt
que x .
(Règle 5) : il est préférable de ne pas utiliser de caractères accentués
dans le nom d’une variable (nous n’entrerons pas dans le pourquoi du
comment).

En Python, le symbole underscore (c’est-à-dire _ ) est


très souvent utilisé pour marquer une séparation entre
plusieurs mots dans un nom : si on veut utiliser une variable
qui contiendra un nombre d’élèves de Seconde G, on peut la
nommer nombre_eleves_2G ou encore nb_eleves_2G
car c’est plus facile à lire que nombreeleves2G .

Activité 2
Question 1 : Quels sont les noms de variables incorrects parmi ceux proposés
? Vous indiquerez pourquoi.

prix achat , prix_achat , note , 2ndeG , SecondeG , Seconde:G , dix-


huit
:
Votre réponse :

- prix achat :NON


- prix_achat :OK
- note :OK
- 2ndeG :NON
- SecondeG :OK
- Seconde:G : NON
- dix-huit :NON

Question 2 : Proposez un nom de variable permettant de stocker :

1. le nombre de 3lles de Seconde G


2. le tarif d’un repas au self
3. l’aire d’un triangle
4. la note à un devoir d’anglais

Votre réponse :
1. le nombre de filles de Seconde G : nbr_f_2ndG
2. le tarif d’un repas au self : prix_cantine
3. l’aire d’un triangle : aire_triangle
4. la note à un devoir d’anglais : note_angl
:
Valeurs des variables
Chaque variable possède une valeur qui est l’information qu’elle porte. Par
exemple,

la valeur de la variable nombre_eleves_2G pourrait être 34 ,


celle de la variable note pourrait être 14.5 ,
celle de la variable prenom pourrait être "Louane" .

ASecter une valeur à une variable


En Python, pour dé3nir ou modi3er la valeur d’une variable c’est très simple, il
sujt d’utiliser le symbole égal : = .

Exemple

Le programme Python

note = 15
note = 15.5
prenom = "Louane"

permet de :

créer une variable note dont la valeur vaut 15, c'est donc une variable de
type entier ( int en Python)
puis de modi3er la valeur de la variable note qui vaut 15.5 à l'issue de la
deuxième ligne.
Important : on utilise le point ( . ) et non pas la virgule pour écrire des
nombres décimaux.
Dans ce cas, le type de la variable a changé : c'est devenu un Dottant
( float en Python).
et en3n de créer une variable prenom dont la valeur est la chaine de
caractères "Louane".
Important : On utilise les guillemets ( "" ) pour désigner les chaînes de
caractères.

Exécutez la cellule suivante

Entrée[1]:  # CELLULE À EXÉCUTER !!!!!!!!!!!!!

note = 15
note = 15.5
prenom = "Louane"
:
À l'issue du programme précédent on peut évaluer la valeur de chaque variable
en exécutant les cellules ci-dessous : (si une erreur s'ajche, c'est sans doute que
vous avez oublié d'exécuter la cellule précédente)

Entrée[2]:  note
Sortie[2]:

Entrée[3]:  prenom
Sortie[3]:

On peut aussi voir le type d'une variable en utilisant la fonction type comme ci-
dessous :

Entrée[4]:  type(note)
Sortie[4]:

Entrée[5]:  type(prenom)
Sortie[5]:

Alcher la valeur d'une variable


Pour ajcher la valeur d’une variable on utilise la fonction print . Par exemple,
pour ajcher la valeur de la variable note on écrit simplement : print(note) .

On peut ainsi ajouter des ajchages dans le programme précédent :

Entrée[6]:  note = 15
print(note)
note = 15.5
print(note)
prenom = "Louane"
print(prenom)

15
15.5
Louane
:
3. Opérations sur les variables de type
nombre ( int et float )

Nous nous contenterons ici de montrer quelques opérations possibles sur les
entiers et les hottants (on parle rapidement des chaînes de caractères en 3n de
document).

Il n’y a pas de surprise : il est possible d’additionner, soustraire, multiplier, diviser


des variables de type nombre (entier ou hottant). On utilise pour cela les
symboles habituels résumés dans le tableau ci-dessous dans lequel on indique
aussi comment élever un nombre à une certaine puissance.

Opération Écriture en Python

Addition a + b

Soustraction a - b

Multiplication a * b

Division a / b

Élever a à la puissance n a ** n

en général À retenir. Les opérateurs de bases

Opération Caractère

Addition +

Soustraction -

Multiplication *

Division /

Division entière //

Reste %

Puissance **

La Division: Il existe deux types de division en Python : la division entière avec


l'opérateur // et la division hottante avec l'opérateur / .
L'opérateur % permet d'obtenir le reste dans une division entière.
:
Entrée[1]:  13 // 5

Sortie[1]:

Entrée[2]:  13 / 5
Sortie[2]:

Entrée[3]:  13 % 5
Sortie[3]:

Les opérateurs du type += et -= permettent de réaliser une aSectation


composée, c'est-à-dire une opération directement suivie d'une aSectation.
En les testant dans la cellule suivante, donnez leur signiqcation. Ces
opérateurs fonctionnent-ils sur des Dottants ?

Entrée[38]:  ## pour les entiers


e = 10
f = 20
e -= 1
f += 1

print(e, f)

9 21

Entrée[1]:  ## à vous de jouer, pour les flottants


e = 5.5
f = 9.8
e -= 1
f += 1

print(e, f)

4.5 10.8

Réponse: Oui ils fonctionnent sur des flottants

Entrée[20]:  ## à vous de jouer, petit exemple

age = 16
age = age + 5
print(f"Dans 5 ans, vous aurez {age} ans.")

Dans 5 ans, vous aurez 21 ans.


:
Activité 3
On considère le programme Python suivant :

a = 15
b = 10
c = a + b
d = c / 2

Question 1 : Déterminez mentalement la valeur de la variable d à l'issue de


ce programme ?

Votre réponse :12.5

Question 2 : Donnez le type de chacune des variables de ce programme.

Votre réponse :
<class a 'int'>
<class b 'int'>
<class c 'int'>
<class d 'float'>

Question 3 : Recopiez ce programme dans la cellule ci-dessous (sans faire un


copier-coller, c'est justement pour apprendre).

Entrée[ ]:  # à vous de jouer !

Entrée[10]:  a = 15
b = 10
c = a + b
d = c / 2

Les sorties
Jusqu'à présent, on s'est contenté d'entrer des variables dans notre programme.
Mais, à la 3n, on aura peut-être besoin d'ajcher de nouveau ces variables ou de
nouvelles qui auront été traitées par les instructions.

L'instruction "print" Exemple avec "print"


:
Entrée[24]:  nom= "toto"
age= "15"
print ("Je m'appelle ", nom, "et j'ai ", age, " ans.")

Je m'appelle toto et j'ai 15 ans.

Entrée[ ]:  # à vous de jouer ! pour votre nom prénom et adresse mail

Question 4 : Utilisez la fonction print pour ajcher la valeur de la variable


d a3n de véri3er votre réponse à la première question.

Entrée[11]:  print(d)
print (type(a))
print (type(b))
print (type(c))
print (type(d))

12.5
<class 'int'>
<class 'int'>
<class 'int'>
<class 'float'>

Dialoguer avec l'utilisateur.


Il est parfois interessant de faire interagir la perosnne qui tuilise le programme en
lui demandant de donner des valeur aux variables. On peut également demander
à un utilisateur d'entrer une variable en utilisant l'instruction "input": On peut
ajouter en paramètre facultatif un message qui donne des précisions sur la valeur
attendue.

Entrée[35]:  a = input()
print(a)
b = input("Entrez votre âge : ")

11
11
Entrez votre âge : 14

lancer le programme suivant :


:
Entrée[26]:  prenom=input("quel est ton prénom?")
print("Bienvenue",prenom)

quel est ton prénom?t


Bienvenue t

Entrée[27]:  age=input("quel est ton age?")


print("Bienvenue tu as",age,"ans")

quel est ton age?D


Bienvenue tu as D ans

exécutez les deux instructions en alternant les imputs


"chiffres" et "chaines des caractéres", que remarquez-vous?

Comme l'information récupérée grâce à un input est une chaîne de caractères, il


va falloir changer le type de la variable pour permettre d'eNectuer des calculs
avec.

Entrée[20]:  nom = str(input("Quel est votre prénom?"))

Quel est votre prénom?CC

Entrée[21]:  print(nom)

CC

Entrée[22]:  age = int(input("Quel âge avez-vous?"))

Quel âge avez-vous?14

Entrée[23]:  age

Sortie[23]:

Exemple : Un boulanger désire un programme qui demande à l'utilisateur le


nombre de baguettes qu'il désire, qui calcule le prix total (sachant qu'une
baguette coûte 1.10 €) et qui ajche le prix que l'utilisateur doit payer. Lancer le
programme et noter le résultat.
:
Entrée[29]:  nombre=input("Combien de baguettes désirez-vous ?") #ici le code n
prix = nombre * 1.1
print("Vous avez à payer",prix,"euros.")

Combien de baguettes désirez-vous ?4

------------------------------------------------------------
---------------
TypeError Traceback (most re
cent call last)
/var/folders/s7/7v7j1z_n009bfwc1gr6wvy3m0000gn/T/ipykernel_9
08/630095058.py in <module>
1 nombre=input("Combien de baguettes désirez-vous ?")
#ici le code n'indique pas que la valeur tapé sera un chiffr
e il faut donc corriger cette ligne
----> 2 prix = nombre * 1.1
3 print("Vous avez à payer",prix,"euros.")

TypeError: can't multiply sequence by non-int of type 'float


'

Le programme ne fonctionne pas! Par défaut la fonction input() renvoie une


valeur de type chaine de caractère (string), il n'est donc pas possible de l'utiliser
dans un calcul mathématique telle quelle, il faudra au préalable la convertir en un
type compatible avec les calculs mathématiques,

Il y a un problème car le nombre taper par l'utilisateur est considéré comme une
chaine de caractére (un texte en gros) et donc pas de calcul possible. Tester ce
programme maintenant. Que constatez-vous?

Entrée[30]:  nombre=int(input("Combien de baguettes désirez-vous ?"))


prix = nombre * 1.15
print("Vous avez à payer",prix,"euros.")

Combien de baguettes désirez-vous ?4


Vous avez à payer 4.6 euros.

Le programme fonctionne avec int comme type de variable car le nombre de


baguette sera un nombre entier (si c'est un nombre à virgule il fallait utiliser hoat)
Et oui, c'est l'instruction int qui permet de changer certaines chaînes de
caractères en un nombre entier. il y a aussi l'instruction hoat permet de changer
certaines chaînes de caractères en un hottant, c'est-à-dire un "nombre à virgule".

visiter le site : https://pythontutor.com/ (https://pythontutor.com/) et choisir


l'option "python"
:
Question 5 : Exécutez la cellule ci-dessous puis exécutez le programme ligne
par ligne avec les boutons Forward > et < Back pour bien comprendre
son fonctionnement.

visualiser le programme ligne par ligne

a = 15
b = 10
c = a + b
d = c / 2

Type Markdown and LaTeX: 𝛼 2

Entrée[ ]: 

4. À vous de jouer !

Les activités qui suivent n’ont pas de contexte


particulier. C’est pourquoi on utilise des noms de variables
peu représentatifs. Leur seul but est de faire ancrer les
notions abordées dans ce document.

Activité 4
On considère le programme Python suivant :

a = 8
b = 3
a = a - 4
b = 2 * b
a = a + b
print(a)

Question 1 : Combien de variables sont utilisées ? Donnez leurs noms.


:
Votre réponse : a et b

Question 2 : Déterminez mentalement la valeur 3nale de la variable a ?

Votre réponse :

Question 3 : Véri3ez votre réponse en recopiant le programme dans la cellule


ci-dessous (sans faire un copier-coller) puis en exécutant ce programme.

Entrée[13]:  # à vous de jouer !


a=8
b = 3
a = a - 4
b = 2 * b
a = a + b
print(a)

17

Question 4 : Il est possible d’ajcher plusieurs valeurs avec la fonction


print . Par exemple, si on veut ajcher les valeurs des variables a et b on
écrit simplement print(a, b) . Modi3ez la dernière ligne du programme
précédent pour ajcher les valeurs 3nales de variables a et b !
:
Activité 5
L'utilisation d'un notebook facilite l'apprentissage, mais sachez que la plupart du
temps on utilise un éditeur de code pour écrire et exécuter des programmes
Python.

C’est un logiciel qui se décompose généralement en deux fenêtres :

la fenêtre d’édition (à gauche dans la capture d'écran ci-dessous) dans


laquelle on écrit le programme dans le langage Python
et la console (à droite dans la capture d'écran) dans laquelle peuvent
notamment s’ajcher les valeurs des variables souhaitées (si on utilise la
fonction print() ).

Il existe énormément d'éditeur et nous utiliserons pour cette séance un éditeur


en ligne appelé BASTHON (qui signi3e Bac À Sable Python) qui ne nécessite pas
d’installation (vous pourrez donc l’utiliser chez vous rien qu’avec une connexion
Internet) et qui est aussi accessible via la plateforme Capytale.

Voici un lien permettant d'accéder à Basthon : https://console.basthon.fr/


(https://console.basthon.fr/).

Consigne : Cliquez sur le lien ci-dessus pour ouvrir l'éditeur de code puis
recopiez dans la fenêtre d'édition (celle de gauche) le programme de l'activité
précédente. Vous exécuterez ensuite le programme en cliquant sur le bouton
"Exécuter" et observerez bien que c'est dans la console (fenêtre de droite) que
s'ajche la valeur de la variable a .
:
Activité 6
On considère le programme de calcul suivant.

A prend la valeur 5
Multiplier A par 3
Soustraire 4 au résultat
Elever le résultat au carré
Ajcher le résultat

Question : Écrivez un programme Python permettant de coder ce programme


de calcul. Véri3ez ensuite en l'exécutant.
Vous pouvez utiliser la cellule ci-dessous ou l'éditeur Basthon.

Entrée[14]:  # à vous de jouer !


A=5
A=A*3
A=A-4
A=A*A
print(A)

121
:
Activité 7

Sur un site de vente en ligne, on peut acheter diNérents articles. Un paquet de


farine d'un kg coûte 1,15 € et une boîte de six oeufs coûte 1,50 €.

Question : Écrivez un programme Python qui :

utilise deux variables pour stocker le nombre de paquets de farine et de


boîtes d'oeufs souhaités
puis, qui calcule et ajche le prix total à payer pour la commande.

Vous pouvez utiliser la cellule ci-dessous ou l'éditeur Basthon.

Entrée[16]:  # à vous de jouer !


NB_pk_farine=0
NB_boit_oeuf=0
# à vous de commander ex: 3 kg de farine et deux boites de six oeu
Px=0.0
NB_pk_farine=3
NB_boit_oeuf=2
Px= NB_pk_farine*1.15+NB_boit_oeuf*1.50
print(Px)

6.449999999999999
:
5. Opérations sur les chaînes de
caractères

Pour les chaînes de caractères c’est plus court car il n’y a que deux opérations
possibles :

la concaténation qui consiste à mettre bout à bout deux chaînes pour


former une unique chaîne : on utilise pour cela le symbole d’addition + .
la répétition qui consiste à ajouter une chaîne un certain nombre de fois à
elle-même : on utilise pour cela le symbole de multiplication * .

Exemple : Exécutez le programme suivant pour comprendre ce deux opérations

Entrée[17]:  chaine1 = "Lou"


chaine2 = "ane"

chaine3 = chaine1 + chaine2 # concaténation


print(chaine3)

chaine4 = 3 * chaine1 # répétition


print(chaine4)

Louane
LouLouLou

On ne peut pas concaténer une chaîne de caractères avec une valeur numérique
directement. Il faut au préalable transformer la valeur numérique en chaîne de
caractères au moyen de la fonction str() :

Entrée[33]:  age = 25
début = "J'ai "
fin = " ans."
phrase = début + str(age) + fin
print(phrase)

J'ai 25 ans.

Les chaines de caractères formatées (aussi appelées f-strings) permettent


d’inclure la valeur d’expressions Python dans des chaines de caractères en les
pré3xant avec f et en écrivant les expressions entre accolades.
:
Entrée[34]:  age = 21
print(f"J'ai {age} ans.")

J'ai 21 ans.

5- Longueur d'une chaîne

La fonction len renvoie la longueur d'une chaîne de caractères (len est


l'abréviation de "length" qui signi3e "longueur" en anglais) :

Entrée[4]:  len('Bonjour')
Sortie[4]:

Entrée[7]:  len('a b c')

Sortie[7]:

Entrée[8]:  len('a\nb\nc')

Sortie[8]:

Remarque 1 : les espaces et les retours à la ligne sont comptés comme des
caractères, mais pas les caractères d'échappement

Remarque 2: Pour ajcher certains caractères spéciaux que l'on ne peut pas saisir
directement dans une chaîne, on utilise comme caractère d'échappement
l'antislash (backslash en anglais) \ :

\n : nouvelle ligne (aller à la ligne) \t : tabulation ' : apostrophe (utilisable dans une
chaîne qui est entre apostrophes) \ : antislash \

Entrée[5]:  print('Bonjour\nCeci est un très long texte\t sur plusieurs lignes.

Bonjour
Ceci est un très long texte sur plusieurs lignes.
Je ne sais pas trop quoi raconter mais ce matin je me suis l
evé à l'aube.

Remarque : Un antislash en 3n de ligne (sans aucun caractère après l'antislash,


même pas un espace) permet d'écrire une instruction très longue sur plusieurs
lignes.
L'instruction ci-dessous est une réécriture de l'instruction précédente, avec des
longueurs de lignes plus raisonnables :
:
Entrée[6]:  print('Bonjour\nCeci est un très long texte\t sur plusieurs lignes.
raconter mais ce matin je me suis levé à l\'aube.')

Bonjour
Ceci est un très long texte sur plusieurs lignes.
Je ne sais pas trop quoi raconter mais ce matin je me suis l
evé à l'aube.

Accès aux caractères individuels d'une chaîne de


caractères

On accède aux caractères qui constituent une chaîne avec la notation [] .


Attention, la numérotation commence à 0. Ainsi, mot[0] désigne le premier
caractère de la chaîne mot .

Remarques :

On utilise la même syntaxe pour les chaînes de caractères que pour les listes
(ou les tableaux en informatique) qui seront vues dans le prochain chapitre.
On ne peut pas modi3er une chaîne de caractères déjà existante. Il faut créer
une nouvelle chaîne à chaque fois qu'on souhaite apporter une modi3cation
à une chaîne. Ainsi, le code suivant provoque une erreur :

Entrée[9]:  s="Bonjour"
print(s[0])
print(s[2])

B
n

Entrée[10]:  mot = "mare"


mot[1] = "u"

------------------------------------------------------------
---------------
TypeError Traceback (most re
cent call last)
/var/folders/s7/7v7j1z_n009bfwc1gr6wvy3m0000gn/T/ipykernel_1
171/3115295765.py in <module>
1 mot = "mare"
----> 2 mot[1] = "u"

TypeError: 'str' object does not support item assignment


:
Ajchez dans la cellule suivante la longueur de la chaine s:

Entrée[11]:  f= len(s)
print(f)

Ajchez dans la cellule suivante la dernière lettre de 'Bonjour' soit


'r', en utilisant la longueur de la chaine.

Entrée[12]:  print(s[-1])
print(s[len(s)-1])

r
r

L'utilisation de valeurs d'index négatives permet d'accéder aux caractères par la


3n de la chaîne:

Entrée[13]:  print(s[-1])

Ajchez la lettre 'j' en utilisant des indices négatifs

Entrée[14]:  print(s[-4])

Exercice 4 : Ecrire un programme qui ajche la première lettre d'un mot


saisi par l'utilisateur.
:
Entrée[16]:  test = input("Veuillez saisir un mot ! ")
print(test[0])

Veuillez saisir un mot ! test


t

Les Boléens : True ou False


Il peut être utile en informatique de véri3er si une condition est vraie ou fausse.

Exemple:

Entrée[ ]:  3<5

Entrée[ ]:  3>5

Entrée[ ]:  3==5

Rq: pour signi3er une égalité, on écrit "=="

Entrée[25]:  3!=5
Sortie[25]:

Rq: pour signi3er "diNérent de", on écrit "!="

3. Le type booléen : bool

Le type bool est utilisé pour les booléens. Un booléen peut prendre les valeurs
True ou False.

Entrée[17]:  a = True
b = not(a)

Les opérateurs booléens

On peut combiner plusieurs expressions booléennes avec les opérateurs and ,


or et not .
Dans le cadre des instructions conditionnelles, ces opérateurs permettent d'éviter
de recourir à des conditions imbriquées (à voir plus tard).
:
Mot- En
Nom Description
clé Français

c1 and c2 est vraie lorsque 𝑐1 et 𝑐2 sont toutes les


and et conjonction
deux vraies

c1 or c2 est vraie lorsqu'au moins une des deux


or ou disjonction
conditions 𝑐1 ou 𝑐2 est vraie

not non négation not c est vraie lorsque 𝑐 est fausse

Voici la table de vérité de ces trois opérateurs :

𝑐1 𝑐2 𝑐1 and 𝑐2 𝑐1 or 𝑐2 not 𝑐1

Vrai Vrai Vrai Vrai Faux

Vrai Faux Faux Vrai Faux

Faux Vrai Faux Vrai Vrai

Faux Faux Faux Faux Vrai

Remarque : la fonction not() est un opérateur logique qui renvoie l’opposé de la


valeur booléenne transmise. Pour True, on obtient False. Réciproquement, il
renvoie False quand on lui transmet True.

Dans la cellule suivante, ajchez le résultat de l'opération logique a and b,


ensuite, ajchez le résultat de l'opération logique a or b

Entrée[18]:  # à vous de jour


a and b

Sortie[18]:

Entrée[19]:  # à vous de jour


a or b

Sortie[19]:

Type Markdown and LaTeX: 𝛼 2


:
Exercice 1: Vous êtes chargé.e de mettre en place une borne automatique pour
régler les droits d’entrée à un parc d’attraction. Chaque adulte doit payer 21€
pour rentrer et chaque enfant doit payer 13€. Pour cette borne, vous devez
programmer sur Python un algorithme qui renvoie le prix à payer en fonction du
nombre d’adultes et d’enfants du groupe. Sachant que la variable : A stocke le
nombre d’adultes, E le nombre d’enfants et P le prix à payer, Proposez un tel
algorithme qui demande à l'utilisateur le nombre de personnes dans chacune des
catégories et qui ajche le prix total à payer.

Entrée[31]:  nombre_adulte=int(input("Combien êtes-vous d'adultes?"))


nombre_enfant=int(input("Combien d'enfant êtes vous?"))
prix_total=nombre_adulte*21 + nombre_enfant*13
print ("Vous nous devez:", prix_total,"euros")

Combien êtes-vous d'adultes?2


Combien d'enfant êtes vous?3
Vous nous devez: 81 euros

Exercice 2: L'Indice de Masse Corporelle (IMC) est un indicateur chiNré utilisé en


médecine. L'IMC d'une personne est donné par la formule IMC=
masse/(taille*taille) où la masse est en kilos et la taille en mètres.

Proposez un algorithme qui demande à l'utilisateur sa taille et sa masse puis qui


ajche l'IMC de la personne.

Entrée[32]:  taille=float(input("Quelle est votre taille en mètre?"))


poids=float(input("Combien pesez-vous?"))
IMC=poids/(taille*taille)
print ("Votre IMC est de :", IMC)

Quelle est votre taille en mètre?1.5


Combien pesez-vous?99
Votre IMC est de : 44.0
:
Dur dur Exercice 3- : dans notre exercise nous Calculer une racine carrée ?
Comment faire une racine carrée en Python ? Pour faire une racine carrée en
Python, il faut utiliser la fonction math.sqrt(). cette fonction est une fonction
intégrée de Python qui permet de calculer la racine carrée d’un nombre. , Il faut
d’abord charger la bibliothèque de mathématiques (ou se trouve la fonction sqrt),
puis utiliser la fonction pour calculer la racine carrée d’un nombre. EX3: La surface
S en mètre carrés de la peau d'un adulte est donnée approximativement par la
formule racine(L x M)/6 où L est la taille de l'individu en mètres et M sa masse en
kilogramme.

Alors votre programme doit : Il faut Importer la fonction sqrt de la bibliothèque


math pour que Python calcul des racines. J'ai mis la ligne d'importation Vous
pourrez ainsi utiliser la fonction racine carrée en saisissant sqrt() et en insérant
dans les parenthèses le nombre dont vous voulez calculer la racine carrée
Demander à l'utilisateur un entier qui représente la taille en centimètres d'un
adulte. Demander à l'utilisateur un réel qui représente la masse en kilogrammes
du même adulte. Calculer ensuite la surface corporelle de cet adulte. Ajcher
en3n cette surface avec une phrase explicative.

Entrée[41]:  from math import sqrt


taille=int(input("Qu'elle est votre taille en centimètre?"))
poids=int(input("Combien pesez vous en Kg?"))
surface=sqrt((taille*poids)/6)
print ("La surface de votre coprs est d'environ:", surface,"cm 2"

Qu'elle est votre taille en centimètre?180


Combien pesez vous en Kg?60
La surface de votre coprs est d'environ: 42.42640687119285 c
m 2

RÈGLE D'USAGE IMPORTANTE : pour éviter ces problèmes, il sujt de préciser le


type de variable que l'utilisateur doit saisir avant la fonction input comme
indiqué ci-dessous :

pour saisir un entier : nom_variable = int(input("message à


afficher"))
pour saisir un hottant : nom_variable = float(input("message à
afficher"))
pour saisir un booléen : nom_variable = bool(input("message à
afficher"))
:
Les bonnes pratiques de programmation
1. Commenter votre code Ils commencent par un # et servent à documenter
un code en Python. Ils sont essentiels pour la compréhension d'un code et sa
maintenance. Les commentaires sur plusieurs lignes s'englobent de trois
guillements: """ comentaires .... """
2. Aérer votre code: un code sans espaces et sauts de ligne est illisible.
3. Respecter les indentations ! Les indentions sont absolument critiques
en Python. Elles servent à la délimitation des blocs d'instructions du type if,
for, while ou encore pour la dé3nition des fonctions !!!!!
Elles le sont moins pour d'autres langages informatiques mais néanmoins
indispensables pour la bonne compréhension d'un code.
4. Utiliser des identiqcateurs clairs pour les variables, c'est à dire assez longs
et parlants, pour que l'on comprenne de quoi il s'agit!
5. Tester son code au fur et à mesure de la programmation. Dans le cas
contraire, c'est la porte ouverte à une multitude d'erreurs !!!
6. Ne pas utiliser les mots réservés en Python (liste non exhaustive):

and, del, from, not, while, as, elif, global, or, with, assert, else, if, pass, yield,
break, except, import, print, class, exec, in, raise, continue, qnally, is, return,
def, for, lambda, try

7. Insérer un cartouche en entête et le mettre à jour à chaque modi3cation


de 3chiers

Entrée[2]:  #Date de création:


#Auteur-e-s :
#Fonction:
#Dernières modifications:
#Librairies utilisées:

Conditions, tests et booléens

Sommaire
1. Les conditions
2. Les conditions multiples
:
Les conditions nous permettent de rendre nos programmes adaptatifs en leur
donnant la possibilité de se comporter diNéremment selon qu'une certaine
condition est réalisée ou pas.

1- Les conditions
**Structure conditionnelle de base : si ... alors ... sinon ...**
:
Cela correspond au pseudo-code suivant :
instructions A
Si condition vraie faire :
instructions B
Sinon
instructions C
instructions D

En Python, les mot-clés sont if (si) et else (sinon) :


A
if condition :
B
else:
C
D

Dans cet exemple,

si la condition est évaluée comme True les instruction B seront exécutées


puis les instructions D seront exécutées ensuite;
si la condition est évaluée comme False les instructions C' seront
exécutées, puis les instructions D seront exécutées ensuite.
En python c'est le mot clé if qui permet de construire une instruction
conditionnelle. C'est l'indentation (4 espaces) qui délimite l'intérieur de
l'instruction conditionnelle
attention à ne pas oublier des : à la suite de la condition

Le programme ci-dessous adapte son comportement à la réponse fournie par


l'utilisateur :

Entrée[4]:  âge = int(input("Veuillez entrer votre âge ! "))


if (âge>=18):
print("Vous êtes majeur!")
else:
print("Vous êtes mineur!")
print("Au revoir!")

Veuillez entrer votre âge ! 11


Vous êtes mineur!
Au revoir!
:
Exercice 1 : Il faut mesurer au moins 1m30 pour pouvoir entrer dans un parc
d'attractions.
Ecrire un programme qui demande à l'utilisateur sa taille en cm, et qui lui
indique s'il peut ou non rentrer dans le parc.

Entrée[5]:  taille = int(input("Quelle est votre taille ? "))


if (taille >= 130):
print("Bienvenue !")
else:
print("Vous ne pouvez pas entrer, vous êtes trop petit!")

Quelle est votre taille ? 40


Vous ne pouvez pas entrer, vous êtes trop petit!

Exercice 2 : Ecrire un programme qui demande à l'utilisateur de saisir deux


nombres, puis qui ajche le plus grand de ces deux nombres.

Entrée[6]:  a = int(input("Veuillez saisir le premier nombre : "))


b = int(input("Veuillez saisir le second nombre : "))
if a > b:
print(a)
else:
print(b)

Veuillez saisir le premier nombre : 8


Veuillez saisir le second nombre : 0
8

Exercice 3 : Ecrire un programme qui demande à l'utilisateur de saisir un


nombre (positif ou négatif), puis qui ajche la valeur absolue de ce nombre.

Entrée[7]:  nombre = float(input("Veuillez saisir un nombre (positif ou négatif


if nombre >=0 :
print(nombre)
else:
print(-nombre)

Veuillez saisir un nombre (positif ou négatif) : 8


8.0
:
Voici les diNérents tests possibles :

Symbole Signiqcation

== égal à

!= diNérent de

< strictement supérieur à


> strictement inférieur à

<= inférieur ou égal à

>= supérieur ou égal à

Attention à la diNérence entre = et ==


Le symbole = est réservé pour l'aNectation.
Le symbole == sert à comparer deux valeurs, plus précisément à savoir si deux
valeurs sont égales.
Cette confusion est la principale source de bug chez les débutants en
programmation.

Exercice 4 : Ecrire un programme qui demande à l'utilisateur de saisir le mot


de passe qui permet de se connecter au serveur de la NASA, et qui lui
indique si l'accès est autorisé ou pas.
Le mot de passe est "azerty".

Entrée[8]:  motDePasse = "azerty"


motSaisi = input("Veuillez saisir le mot de passe : ")
if motSaisi == motDePasse:
print("Accès autorisé")
else:
print("Mot de passe incorrect - accès non autorisé")

Veuillez saisir le mot de passe : oo


Mot de passe incorrect - accès non autorisé

Structure conditionnelle incomplète : si ... alors ...


:
La clause else est facultative. On obtient alors la structure suivante :

Bloc A
Si condition vraie faire :
Bloc B
Bloc C
Ainsi, si la condition est vraie, on eNectuera les blocs A-B-C.
Si la condition n'est pas vraie, on eNectuera les blocs A-C

Exercice : Réécrire le programme qui ajche la plus grande des deux valeurs
saisies par l'utilisateur, mais cette fois sans utiliser la clause else .

Entrée[10]:  a = int(input("Veuillez saisir le premier nombre : "))


b = int(input("Veuillez saisir le second nombre : "))
maxi = a
if b > a:
maxi = b
print(maxi)

Veuillez saisir le premier nombre : 9


Veuillez saisir le second nombre : 7
9

Pour éviter trop de blocs imbriqués, on dispose du mot clé elif contraction de
else et if .

Exercice : Le problème du pass sanitaire


On demande à une personne si elle est vaccinée et si elle a un test PCR
négatif.
Si elle est vaccinée, elle peut entrer.
Sinon, elle ne peut entrer que si elle a un test PCR négatif.
:
Entrée[13]:  vacciné = input("Etes-vous vacciné (O/N)?")=='O'
testNégatif = input("Avez-vous un test PCR négatif (O/N)?")==

if vacciné:
print("Vous pouvez entrer...")
else:
if testNégatif:
print("Vous pouvez entrer!")
else:
print("Vous ne pouvez pas entrer!")

Etes-vous vacciné (O/N)?N


Avez-vous un test PCR négatif (O/N)?O
Vous pouvez entrer!

refaire le même programme avec "elif" ?

Entrée[14]:  vacciné = input("Etes-vous vacciné (O/N)?")=='O'


testNégatif = input("Avez-vous un test PCR négatif (O/N)?")==

if vacciné:
print("Vous pouvez entrer...")
elif testNégatif:
print("Vous pouvez entrer!")
else:
print("Vous ne pouvez pas entrer!")

Etes-vous vacciné (O/N)?N


Avez-vous un test PCR négatif (O/N)?O
Vous pouvez entrer!

Les boucles for


En Python, les boucles pour se codent en utilisant l'instruction for :

for element in sequence:


bloc_instructions

Remarques :

element est une variable créée par le for , ce n'est pas à vous de
l'instancier. Elle prend successicement chacune des valeurs 3gurant dans la
sequence parcourue ;
la sequence parcourue peut être :
une séquence de nombres entiers générée par la fonction range (voir
ci-dessous)
:
une chaîne de caractères, un tuple, une liste, un dictionnaire (tout ceci
sera étudié cette année)
d'autres types de séquences que l'on n'évoquera pas ici

La fonction range
La fonction range() pour créer des séquences de nombres entiers :

range(n) crée une séquence des n entiers, de 0 inclus à n exclu, c'est-à-


dire : 0, 1, 2, ..., n-1 ( le premier est 0, donc le n-ième est n-1).
range(n, m) crée la séquence d'entiers de n inclus à m exclu, c'est-à-dire
: n, n+1, ..., m-1.
range(n, m, p) crée la séquence de nombres de n inclus à m exclu
avec un pas égal à p , c'est-à-dire : n, n+p, n+2p, ... .

alors on peut dire

range([start,] stop[, step]) : les paramètres entre crochets sont


facultatifs, mais si ils sont renseignés ils changent :

la valeur de départ pour start ;


le pas entre les entiers pour step .

Exemples :

range(5) : crée la séquence de nombres de 0 inclus à 5 exclu : c'est-à-dire


les nombres 0, 1, 2, 3, 4.
range(2, 8) : crée la séquence de nombres de 2 inclus à 8 exclu : c'est-à-
dire les nombres 2, 3, 4, 5, 6, 7.
range(2, 11, 3) : créee la séquence de nombres de 2 inclus à 11 exclu,
par pas de 3 : c'est-à-dire les nombres 2, 5, 8.

On peut visualiser cette séquence en ajchant leurs valeurs successives :

Entrée[23]:  for element in range(5):


print(element)

0
1
2
3
4

ou en utilisant la fonction list() :


:
Entrée[24]:  list(range(5))

Sortie[24]:

Exercice : Ecrire un programme qui demande à l'utilisateur de saisir un mot,


et qui ajche ce mot verticalement (sur une colonne).

Entrée[17]:  mot = input("Veuillez saisir un mot ! ")


for i in range(len(mot)):
print(mot[i])

Veuillez saisir un mot ! test


t
e
s
t

Ainsi, pour répéter un bloc d'instructions 36 fois, il sujt d'écrire :

for i in range(36):
bloc_instructions

En eNet, la variable i créée par la boucle va prendre successivement les valeurs


: 0, 1, 2, 3, ..., 35. Elle prend donc 36 valeurs et le bloc bloc_instructions sera
donc répété 36 fois.

On aurait aussi pu écrire cela :

for i in range(0, 36):


bloc_instructions

ou encore :

for i in range(1,37):
bloc_instructions

ou encore :

for valeur in range(36):


bloc_instructions

car dans chaque cas, la variable créée ( i ou valeur ) parcoure 36 valeurs


diNérentes
:
!!! Cas d'une variable de boucle non utilisée

Lorsque la variable créée par le for n'a pas d'importance pour la boucle, plutôt
que de lui donner un nom, on peut la nommer _ (un underscore) pour marquer
le fait que l'on se moque du nom de cette variable :

Ainsi, on peut écrire la dernière boucle de la façon suivante :

for _ in range(36):
bloc_instructions

!!!

!!! warning Attention

Si la variable de boucle est utilisée dans les instructions de la boucle for , les
bornes utilisées dans la fonction range sont souvent importantes.

!!!

Pour preuve, les deux programmes ci-dessous ne sont alors plus équivalents :

Entrée[29]:  a = 2
for i in range(5): # i varie de 0 à 4
a = a + i
#print(a)
print(a)

12

Entrée[30]:  a = 2
for i in range(3, 8): # i varie de 3 à 7
a = a + i
#print(a)
print(a)

27

En eNet, bien que dans les deux cas, l'instruction a = a + i est répétée 5 fois,
comme les valeurs de i sont diNérentes et que ces valeurs sont utilisées pour
évaluer la nouvelle valeur de a , alors la valeur 3nale de cette variable n'est pas la
même.
:
Q1 : Quelles sont les valeurs générées par la fonction range dans les trois
cas suivants ?

range(10)
range(2, 10)
range(2, 10, 3)

Voir la correction

Ecrivez sur le papier les résultats des instructions suivantes :

Entrée[33]:  # à vous de jouer ..


print(list(range(10)))

print(list(range(1, 11)))

print(list(range(0, 30, 5)))

print(list(range(0, 10, 3)))

print(list(range(0, -10, -1)))

print(list(range(0)))

print(list(range(1, 0)))

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[0, 5, 10, 15, 20, 25]
[0, 3, 6, 9]
[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
[]
[]

Les boucles while


:
En Python, les boucles "Tant que" se codent en utilisant l'instruction while :

while condition:
bloc_instructions

!!! danger Danger

Tant que la condition est vraie le bloc_instructions est exécuté en


boucle. Cela veut dire que si condition ne devient jamais fausse alors la boucle
va tourner à l'in3ni, ce qui pourra causer des problèmes plus ou moins
importants (le moins important étant de faire planter votre ordinateur).

Il est donc absolument nécessaire de s'assurer que la condition d'un while ne


puisse pas rester vraie à l'in3ni.

!!!

Entrée[35]: 
nb = 1
stop = 5
while nb <= stop:
print(nb, nb**2)
nb += 1

1 1
2 4
3 9
4 16
5 25

Les fonctions
:
Dans un langage de programmation, on utilise ce qu'on appelle des fonctions.
Une fonction est un ensemble d'instructions qui peut recevoir des arguments et
qui peut renvoyer un résultat qui est souvent le contenu d'une ou plusieurs
variables.

En Python, on dé3nit une fonction en utilisant l'instruction def (de l'anglais


de3ne, qui veut dire "dé3nir") :

def nom_de_la_fonction(parametre1, parametre2, ..., para


metreN):
corps_de_la_fonction

Très souvent, le corps de la fonction se terminera par l'instruction return suivie


de la ou des valeurs que la fonction doit renvoyer. Si la fonction doit renvoyer
plusieurs valeurs, celles-ci sont à séparer par des virgules.

Ainsi, le schéma général d'une fonction Python est :

def nom_de_la_fonction(parametre1, parametre2, ..., para


metreN):
instructions # sur plusie
urs lignes éventuellement
return valeur1, valeur2, valeur3, etc. # souvent un
e fonction ne renvoie qu'une valeur

Exemple :

Entrée[36]:  def addition(a, b):


s = a + b
return s

lorsque nous allons executer le code cela ne fonctionnera pas, par ce qu' il
ne faut pas oublier d'appeller la fonction

On appelle une fonction pour l'utiliser et connaître la valeur


renvoyée

Entrée[37]:  addition(2, 5)
Sortie[37]:
:
L'instruction return
Elle permet de renvoyer une ou plusieurs valeurs calculées par la fonction.

Notez qu'au premier return rencontré, l'exécution de la fonction est stoppée.

Entrée[38]:  def fonction_debile(a, b):


return a + b # fonction stoppée après cette ligne
return a * b # ne sera pas exécuté

Entrée[39]:  fonction_debile(2, 5)

Sortie[39]:

!!! warning Attention

Cela ne veut pas dire qu'on ne peut pas écrire plusieurs return dans une
fonction.

!!!

Par exemple, la fonction gagnant écrite un peu plus haut peut s'écrire de
manière équivalente comme suit :

Entrée[40]:  def gagnant(score_A, score_B):


if score_A > score_B:
return "équipe A"
elif score_A < score_B:
return "équipe B"
else:
return "Match nul"

Entrée[41]:  gagnant(2, 3)
Sortie[41]:

DiSérence en return et print


Vous pouvez me dire que cela revient au même d'écrire la fonction addition
de la manière suivante :

Entrée[42]:  def addition_avec_print(a, b):


s = a + b
print(s)
:
Entrée[43]:  def addition_avec_print1(a, b):
s = a + b
return s

Après tout, si on on appelle les deux fonctions, le résultat s'ajche :

Entrée[44]:  addition_avec_print(2, 5)
addition_avec_print1(2, 5)

Sortie[44]:

!!! danger Attention

Bien que cela donne l'impression d'être similaire, la distinction entre les deux est
primordiale !

!!!

En eNet, dans le cas du return , le résultat est renvoyé par la fonction (dans un
notebook on le voit car l'appel produit une sortie) ; tandis que le print ne fait
qu'ajcher le résultat.

Dans le premier cas, comme la valeur est renvoyée par la fonction, cette valeur
peut être réutilisée ailleurs dans le programme, ce qui est impossible si elle est
uniquement ajchée.

Cas d'une fonction qui renvoie plusieurs


valeurs
Comme indiqué dans le schéma général d'une fonction, pour renvoyer plusieurs
valeurs il sujt de les séparer par des virgules après le return :

Entrée[45]:  def somme_et_produit(a, b):


s = a + b
p = a * b
return s, p # les valeurs des deux variables s et p seront re

Entrée[46]:  somme_et_produit(2, 5)
Sortie[46]:
:
Exercice : Ecrire une fonction estPrésent(lettre,message) qui renvoie
True ou False selon que la lettre est présente ou non dans le message.

Entrée[19]:  # Version 1
def estPrésent(lettre,message):
résultat = False
for i in range(len(message)):
if message[i] == lettre:
résultat = True
return résultat

print(estPrésent('a','abracadabra'))
print(estPrésent('r','abracadabra'))
print(estPrésent('R','abracadabra'))

True
True
False

Exercice : Ecrire une fonction nbOccurences(lettre,message) qui


renvoie le nombre d'occurences d'une lettre (ou d'un caractère) dans un
message.

Entrée[21]:  def nbOccurences(lettre,message):


compteur = 0
for i in range(len(message)):
if message[i] == lettre:
compteur = compteur + 1
return compteur

print(nbOccurences('a','abracadabra') == 5)
print(nbOccurences('A','abracadabra') == 0)
print(nbOccurences('a','abracadabra') )
print(nbOccurences('A','abracadabra'))

True
True
5
0

Entrée[ ]: 
:
:

Vous aimerez peut-être aussi