nom_utilisateur = input("Veuillez saisir votre nom :")
age_utilisateur = input("Veuillez saisir votre âge :")
print(nom_utilisateur, age_utilisateur)
print(type(age_utilisateur)) # OBSERVEZ BIEN LE TYPE
ATTENTION : Par défaut, en Python, les variables saisies au clavier et récupérées par la fonction input
sont des chaînes de caractères.
Ce n'est pas forcément très pratique surtout si les valeurs saisies représentent plutôt des nombres. Et cela peut créer des erreurs :
age_utilisateur = input("Veuillez saisir votre âge :")
age_utilisateur = age_utilisateur + 2
L'erreur se situe ligne 2 comme l'indique la flèche verte. Le message d'erreur TypeError: can only concatenate str (not "int") to str
indique que Python ne peut concaténer une chaîne de caractères qu'avec une autre chaîne de caractères (mais pas avec un entier).
En effet, la variable age_utilisateur
étant de type str
, le symbole +
qui suit est le symbole de concaténation, qui ne peut pas s'appliquer à l'entier 2 qui suit car celui-ci est de type int
.
RÈGLE D'USAGE IMPORTANTE : pour éviter ces problèmes, il est un très bon usage que de déclarer le type de variable que l'utilisateur doit saisir. Pour cela, il suffit de préciser le type de variable avant la fonction input
comme indiqué ci-dessous :
nom_variable = int(input("message à afficher"))
nom_variable = float(input("message à afficher"))
nom_variable = bool(input("message à afficher"))
nom_variable = long(input("message à afficher"))
Ainsi, pour régler le problème précédent, il suffit d'écrire :
age_utilisateur = int(input("Veuillez saisir votre âge :"))
print("Dans deux ans, vous aurez :", age_utilisateur + 2, "ans")
print
¶Vous l'avez déjà utilisée à maintes reprises : la fonction print
permet d'afficher des éléments dans la console, notamment les valeurs de variables ou encore des messages.
Remarque importante : dans un Notebook, tout comme dans une console, si on veut afficher la valeur d'une variable, il n'est pas nécessaire d'utiliser la fonction print
. Il suffit pour cela de taper en dernière ligne le nom de la variable que l'on veut afficher.
prix = 35
prix_remise = prix * 0.8 # remise de 20 %
prix # ne sera pas affiché
prix_remise # sera affiché car en dernière ligne
Si vous souhaitez afficher les valeurs de plusieurs variables, un print
est nécessaire.
prix = 35
prix_remise = prix * 0.8 # remise de 20 %
print(prix, prix_remise) # un print pour afficher plusieurs variables
Ecrivez un programme Python qui demande à l'utilisateur de saisir un prix et qui affiche le prix soldé à -30%. Vous peaufinerez les affichages d'entrée et de sortie.
Dans le langage Python, le symbole =
correspondant à l'affectation (écrite $\leftarrow$ en pseudo-code).
Codez en Python, les algorithmes correspondant aux exercices 1 à 3 du document intitulé Les bases de l'algorithmique de la Séquence 1. Ces algorithmes ont été rappelés ci-après. Vous vérifierez ainsi vos réponses en affichant convenablement les valeurs de variables demandées.
Vous ajouterez trois cellules de codes, chacune correspondant à un exercice.
Exercice 1 : Que valent N et P après l’exécution de cet algorithme ?
N ← 2 P ← 3 N ← P + 1 P ← N
Exercice 2 : Que vaut B après l’exécution de cet algorithme ?
A ← 8 B ← (A ≥ 10)
Exercice 3 : Supposons que N vaut 2 ; que vaut P après l’exécution de cet algorithme ?
P ← N mod 5 P ← N div P
if elif
et else
¶En Python, les instructions conditionnelles se codent en utilisant les instructions if
, elif
, else
.
if condition1 :
instructions 1 à effectuer
elif condition2 :
instructions 2 à effectuer
else :
instructions 3 à effectuer
Remarques :
if
, elif
et else
qui permettent d'ouvrir le bloc d'instructions à effectuer dans chaque cas ;if
, elif
et else
: c'est la syntaxe Python, elle doit absolument être respectée ;elif
et else
ne sont pas obligatoires ;a = 15 # VALEUR A MODIFIER POUR VISUALISER LE RÔLE D'UNE INDENTATION
if a >= 10:
print("Vous avez la moyenne") # indentation = dans le bloc d'instructions du if
print("Message dans le bloc d'instructions du if") # indentation = toujours dans le bloc d'instructions du if
print("Message en dehors du bloc d'instruction du if") # indentation terminée = on est sorti du bloc d'instructions du if
Le dernier message s'affiche à chaque fois, en revanche les deux messages précédents ne s'affichent que si on entre dans le bloc if
, autrement dit si la condition a >= 10
est vraie. Modifiez la valeur de a
à la première ligne pour observer cela si ce n'est pas encore fait.
Programmez en Python l'algorithme de l'exercice 5 du document intitulé Les bases de l'algorithmique de la Séquence 1 et dont on rappelle l'énoncé ci-dessous.
Exercice 5 : Supposons que A vaut 1 au début ; que vaut-il après l’exécution de cet algorithme ?
si A ≥ 0 alors A ← A - 1 sinon A ← A + 1 fin si
Proposez un programme Python qui :
for
¶En Python, les boucles 'Pour' se codent en utilisant l'instruction for
:
for element in sequence :
instruction 1
instruction 2
...
instruction N
Remarques :
element
est une variable créée par le for
, ce n'est pas à vous de l'instancier. Elle prend successicement chacune des valeurs figurant dans la sequence
parcourue ;for
qui permettent d'ouvrir le bloc d'instructions à exécuter (à répéter) ;for
;range
pour créer des séquences de nombres¶La fonction range
permet de créer des séquences de nombres. Vous allez comprendre quels nombres sur les exemples qui suivent :
range(5)
: permet de créer la séquence de nombres entiers de 0 inclus à 5 exclu : c'est-à-dire les nombres 0, 1, 2, 3, 4.range(2,8)
: permet de créer la séquence de nombres entiers de 2 inclus à 8 exclu : c'est-à-dire les nombres 2, 3, 4, 5, 6, 7.range(2,8,3)
: permet de créer la séquence de nombres entiers de 2 inclus à 8 exclu, par pas de 3 : c'est-à-dire les nombres 2, 5.Ainsi, pour répéter un bloc d'instructions 36 fois, il suffit d'écrire :
for i in range(36):
instructions
En effet : 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 instructions
sera donc répété 36 fois.
On aurait aussi pu écrire cela :
for i in range(0, 36):
instructions
ou encore :
for i in range(1,37):
instructions
ou encore :
for valeur in range(36):
instructions
car dans chaque cas, la variable créée (i
ou valeur
) parcoure 36 valeurs différentes.
Programmez en Python les algorithmes des exercices 9, 10 et 12 du document intitulé Les bases de l'algorithmique de la Séquence 1 et dont on rappelle les énoncés ci-dessous.
Exercice 9 : Supposons que A vaut initialement 10 ; combien vaut-il après l’exécution de cet algorithme ?
pour i de 2 à 5 faire A ← A + i fin pour
Exercice 10 : Supposons que V vaut 0 initialement ; combien vaut-il après l’exécution de cet algorithme ?
pour I de 1 à 4 par pas de 1 faire si I est pair alors V ← V + I*I fin si fin pour
Indication : un nombre est pair s'il est divisible par 2, autrement dit si le reste dans la division entière par 2 vaut 0.
Exercice 12 : Supposons que A vaut 1 initialement ; combien vaut-il après l’exécution de cet algorithme ?
pour i de 0 à 3 faire pour j de 0 à 2 faire A ← A + i*j fin pour fin pour
Amélioration : pour visualiser l'imbrication des deux boucles
for
, affichez aux bons endroits les différentes valeurs des couples (i,j) et de la variable A.
Nous venons de voir que la fonction range
permettait de créer des séquences de nombres que l'on pouvait parcourir avec l'instruction for
.
Il se trouve que les chaînes de caractères sont également des séquences ... de caractères. On peut donc aussi les parcourir très simplement avec une boucle for
.
chaine = "Bonjour les élèves !"
for caractere in chaine :
print(caractere)
La variable caractere
créée par le for
prend successivement les valeurs de la séquence "Bonjour les élèves !", c'est-à-dire qu'elle prend la valeur 'B' puis la valeur 'o', puis la valeur 'n', etc. La boucle s'arrête lorsque toute la séquence a été parcourue.
Vous reviendrez à ce paragraphe pour la recherche du dernier exercice de ce document.
while
¶En Python, les boucles 'Tant que' se codent en utilisant l'instruction while
:
while condition :
instruction 1
instruction 2
...
instruction N
Remarques :
condition
est une variable booléenne qui est soit vraie (True) soit fausse (False) ;condition
vaut True les instructions du bloc sont répétées ;condition
vaut False, autrement dit si condition
reste vraie tout le temps, la boucle while
boucle à l'infini, ce qui pourra causer des problèmes plus ou moins importants ;while
qui permettent d'ouvrir le bloc d'instructions à exécuter (à répéter) ;while
;Programmez en Python les algorithmes des exercices 13 et 15 du document intitulé Les bases de l'algorithmique de la Séquence 1 et dont on rappelle les énoncés ci-dessous.
Exercice 13 : Supposons que D vaut 7 initialement ; que vaut-il après l’exécution de cet algorithme ?
tant que D > 3 faire D ← D - 3 fin tant que
Exercice 15 : Proposez un algorithme qui utilise une boucle Tant que qui a pour but d’afficher le quotient de la division entière d’un entier naturel A par un entier naturel B.
En Python, on définit une fonction à l'aide du mot-clé def
:
def nom_de_la_fonction(parametre1, parametre2, ..., parametreN):
instruction1
instruction2
...
return(valeur1, valeur2, ..., valeurP)
def
est suivi du nom de la fonction ;return
permet de renvoyer une ou plusieurs valeurs (à séparer par des virgules) ;return
rencontré l'exécution de la fonction est stoppé : si on veut renvoyer plusieurs valeurs on ne peut pas utiliser plusieurs return
; il faut séparer les valeurs à renvoyer par des virgules ;def
qui permettent d'ouvrir le bloc d'instructions à exécuter (à répéter).Programmez en Python les fonctions des exercices 16, 17 et 18 du document intitulé Les bases de l'algorithmique de la Séquence 1 et dont on rappelle les énoncés ci-dessous.
Exercice 16 : Proposez le pseudo-code d’une fonction mini qui renvoie le minimum des deux nombres donnés en paramètres.
Exercice 17 : Proposez le pseudo-code d’une fonction mini4 qui renvoie le minimum des 4 nombres donnés en paramètres. Contrainte : vous devez faire appel à la fonction mini !
Exercice 18 : Les élèves d’une classe ont eu 4 notes. Le professeur, très généreux, décide de retirer la note la plus basse avant de calculer la moyenne de chaque élève. Proposez le pseudo code d’une fonction nouvelleMoyenne qui prend les 4 notes en paramètres et qui renvoie la moyenne calculée après avoir retiré la moins bonne.
Transformez votre programme de l'exercice 0 de ce document en une fonction qui prend en paramètres le prix et le taux de réduction et qui renvoie le prix soldé.
n
et qui renvoie True
si cet entier naturel est premier et False
sinon. On rappelle qu'un entier naturel est premier s'il possède exactement deux diviseurs distincts : 1 et lui-même.*chaine
et un caractère c
en paramètres et qui renvoie le nombre d'occurences de c
dans chaine
.Germain BECKER & Sébastien POINT, Lycée Mounier, ANGERS