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.