Conditions et méthodes
Dans nos programmes, en fonction de certaines variables, parfois nous voulons faire des choses, parfois nous ne le faisons pas. Pour cela, le dernier ingrédient qui nous manque dans notre arsenal d'outils est la condition. Les conditions sont assez simples et nous les utilisons tous les jours : Est-ce qu'il pleut ? Oui/Non => Prenez un parapluie/ne le prenez pas. Notez qu'en informatique, les conditions sont composées de : un test aboutissant à un booléen (Vrai ou Faux), ce qu'il faut faire si le test est Vrai, et parfois ce qu'il faut faire s'il ne l'est pas. Voyons comment cet outil peut être utilisé.
# fibonacci: argument = 1 entier; retourne 1 entier
def fibonacci(n):
x_nm1 = 0
x_nm2 = 1
for i in range(n):
x_n = x_nm1 + x_nm2
x_nm2 = x_nm1
x_nm1 = x_n
return x_nm1
while True:
# utilise la fonction input qui permet de récupérer une chaine de caractères entrée par l'utilisateur
s = input('Which Fibonacci number do you want? ')
# as input returns a string and we want a number
# we convert it to integer
n = int(s)
# print the result
print("Fibonacci(",n,") = ",fibonacci(n),"\n")
Exercice 5
- Prenez un moment pour lire ce code et essayez de comprendre ce qui se passe.
- Que se passera-t-il si l'utilisateur entre son nom plutôt qu'un nombre. Testez-le.
La fonction int() peut convertir une chaine de caractère correspondante à un nombre en nombre, mais pas un nom. Le programme va donc bugger si l'utilisateur rentre son nom ou quoi que ce soit qui ne correspond pas à un nombre. Pour éviter cela, nous pouvons utiliser une condition et vérifier si notre chaîne est composée de chiffres.
Nous utiliserons pour cela utilisons la méthode isdigit() qui peut être appliquée au chaînes de caractères. Voici comment utiliser une méthode:
s = input("Entre quelque chose et je te dirais si c'est un nombre")
if s.isdigit():# s.isdigit() returns either True or False
# ce qu'il faut faire si la réponse à la question est Vrai
print("s est un entier positif")
else:
# ce qu'il faut faire si la réponse à la question est Faux
print("s n'est pas un entier positif")
Une méthode est une fonction qui peut être appelée en lien avec un variable. Ici, comme s est une chaîne de caractères, on peut lui appliquer la méthode isdigit() qui nous dira si s est un nombre entier positif ou non.
Exercice 5 bis
Ajouter une condition et la méthode isdigit() à l'intérieur de la boucle "while" pour rappeler à l'utilisateur de mettre des chiffres s'il ne le fait pas.