Attention
Ce TP est à rendre, et noté.
Vous devez écrire les réponses sur une feuille et me rendre cette feuille à la fin.
Ce n'est pas une interro. Je vous aide à répondre. Posez-moi des questions.
input()Pour l'instant, nous avons écrit des programmes en utilisant des valeurs fixes, par exemple:
a = 13
b = 8
Il serait cependant plus utile de pouvoir demander à l'utilisateur, lors de l'utilisation du programme, de saisir sur le clavier les valeurs qu'il veut utiliser.
Pour cela, on utilise la fonction input() de Python.
La fonction input affiche un message et attend une réponse de l'utilisateur. La valeur renvoyée est une chaîne de caractères (string).
Entrez le code suivant dans l'éditeur de code Basthon et excutez-le.
a = input("Entrez quelque chose et appuyez sur entrée: ")
print( type(a) )
print(a)
Question 1: que fait la deuxième ligne de ce code?
Comme premier exercice, on voudrait calculer l'addition entre deux nombres saisis par l'utilisateur. On pourrait se dire que le code est celui-ci, mais il y a un problème:
a = input("Entrez le premier nombre: ")
b = input("Entrez le deuxième nombre: ")
print(a + b)
Question 2: que s'affiche-t-il quand on exécute ce code? Est-ce le bon résultat ?
Question 3: quel est le problème dans ce code ? Indice: si vous ne vous souvenez pas qu'on en a déjà parler, vous pouvez utiliser la fonction type() pour essayer de chercher le problème.
Si vous ne trouvez pas, remplacez l'addition par une division. Quand vous exécuterez le programme, vous obtiendrez un message d'erreur qui vous dira le problème.
Nous allons maintenant nous assurer que la valeur choisie par l'utilisateur est bien un nombre. Pour cela, nous allons convertir le texte entré en nombre à l'aide de la fonction int().
La fonction int() prend une valeur et la transforme en nombre entier (si c'est possible). Essayez-la dans la console interactive (la zone à droite dans Basthon).
>>> int("12")
12
>>> int(12)
12
>>> int(12.23)
12
>>> int("douze")
???
Question 4: que se passe-t-il quand on tape la dernière commande ? Pourquoi ?
Nous allons maintenant modifier le programme précédent pour convertir les valeurs saisies par l'utilisateur en entiers:
a = input("Entrez le premier nombre: ")
b = input("Entrez le deuxième nombre: ")
a = int(a)
b = int(b)
print(a + b)
Vérifiez que ce code fonctionne correctement, cette fois.
Question 5: que fait la troisième ligne de ce programme ?
if, else)On rappelle que, comme vu en cours, les instructions if et else
permettent d'effectuer, ou non, certaines instructions, en fonction d'une condition. Ces instructions s'utilisent de cette manière:
if condition:
instructions si la condition est vraie
else:
instructions si la condition est fausse
La condition que l'on met dans le if est quelque chose qui est soit vrai, soit faux. Un test, ou une comparaison, par exemple:
texte = input("Entrez un nombre: ")
a = int(texte)
if a > 0:
print("a est un nombre positif")
else:
print("a est un nombre négatif")
Entrez ce code dans l'éditeur de code et essayez-le.
L'équivalent de ce code en français serait:
Demander "Entrez un nombre: " Mettre la réponse dans la variable "texte".
Convertir "texte" en nombre entier, et mettre cette valeur dans la variable "a".
Si a est supérieur à zéro:
Afficher "a est un nombre positif"
Sinon:
Afficher "a est un nombre négatif"
Question 6: que se passe-t-il si on entre la valeur 0 ?
(Pour l'instant, on ne va pas résoudre le problème de la valeur 0, on le fera plus tard.)
texte = input("Entrez un âge: ")
a = int(texte)
if a < 18:
print("majeur")
else:
print("mineur")
Question 7: qu'affiche ce programme si on entre l'âge 15 ? 18 ?
Tout à l'heure, nous avions fait l'addition de deux nombres saisis par l'utilisateur. Cette fois, nous allons faire une division.
Question 8: écrivez un programme qui demande à l'utilisateur d'entrer deux nombres, et qui affiche le résultat de la division de ces nombres. Vous pouvez reprendre le programme de l'addition et simplement changer le calcul.
Question 9: que se passe-t-il si on entre 0 pour le deuxième nombre ? (C'est à dire si on demande de diviser par zéro ?
Question 10: utilisez une condition if... else... pour éviter le problème. Si la divison est possible, affichez le résultat, sinon, affichez "opération impossible".
whileLe but d'une boucle est de répéter des instructions plusieurs fois, sans les écrire plusieurs fois. Par exemple, si je vous dis "compte de 1 à 100", je vous demande de répéter quelque chose (compter) 100 fois. Je ne vous dis pas "compte 1, compte 2, compte 3...
Il y a deux manières de faire une boucle:
Il y a plusieurs manières de faire des boucles, mais pour simplifier, on commence par une seule, la boucle while. Elle correspond aux mots français "tant que". Par exemple, l'exemple numéro 3 ressemblerait à quelque chose comme ça:
while pas_assez_salé:
ajouter_du_sel
Pour être plus précis, il faut trois éléments pour écrire une boucle while:
On peut essayer de réécrire notre exemple:
sel = 0
while sel < 10:
sel = sel + 1
Les trois éléments sont importants:
Question 11: la boucle s'arrête quand la variable "sel" a quelle valeur ?
Question 12: écrivez un code qui affiche les nombres de 1 à 20.
Question 13: écrivez un code qui affiche les nombres de 20 à 1 (dans l'autre sens, donc)..