"Si autre que..."

Résolu/Fermé
Lozz17 Messages postés 3 Date d'inscription mercredi 26 septembre 2018 Statut Membre Dernière intervention 2 octobre 2018 - Modifié le 2 oct. 2018 à 21:38
 Lozz17 - 3 oct. 2018 à 10:04
Bonjour,
Mon professeur nous à donner un programme a taper en cours et je l'ai enregistrer à la maison pour un peu le bidouiller et apprendre des choses, d'où je poste ce sujet.
J'aimerais savoir, en langage python comment dire "Si choix = autre que ... dire ..." je ne sais pas si c'est clair mais en gros le programme consiste a choisir un nombre et nous dire si le chiffre est + petit ou + grand.
Moi j'aimerais rajouter quelque chose du genre: si quelq'un écrit une lettre au lieu d'un chiffre dire "Veuillez écrire un chiffre et non autre chose".
Encore désolé si c'est pas très compréhensible et merci de votre aide



2 réponses

Bonjour.

Les chaines de caractères étant itérables et python pouvant comparer des chaines de caractères, alors une simple comparaison convient à faire cela.


while True:
    nombre = input("Saisissez un nombre : ")
    for i in nombre:
        if not '0' <= i <= '9':
            print("Ceci n'est pas un nombre.")
            break
    else:
        nombre = int(nombre)
        break


Mais comme tu dois t'en douter, tu n'es pas le 1er à vouloir faire ça, python fournit une méthode permettant de tester si une chaîne de caractères est composée que de chiffres, str.isdigit()

while True:
    nombre = input("Saisissez un nombre : ")
    if not nombre.isdigit():
        print("Ceci n'est pas un nombre.")
    else:
        nombre = int(nombre)
        break


Une autre approche est d'utiliser une exception, c'est très simple, lorsque l'on tente de convertir une chaîne non tranformable en entier avec int(), python renvoie une erreur de type ValueError, il suffit alors de la choper pour afficher ce qui ne va pas.


while True:
    nombre = input("Saisissez un nombre : ")
    try:
        nombre = int(nombre)
    except ValueError:
        print("Ceci n'est pas un nombre.")
    else:
        # Tout s'est bien déroulé
        break



Voilà 3 façons de faire, la seconde te paraitra sans doute la plus simple.
0
Merci beaucoup ! :)
0