Résolue

Compréhension du Zen of Python et la répétition de code

# Refactoring

Bonjour,

Qu'entendez-vous par "Ta solution a cependant le défaut de répéter du code ce qui est contraire au règle du Zen of Python ou PEP20" ?

De mon point de vue, une boucle while va forcément répéter du code.

Pourriez-vous m'aider à comprendre s'il-vous-plait ?

Merci d'avance.
Daniston

Bonjour Daniston.

Je viens de revérifier et effectivement la correction de code n'a pas été envoyée correctement ce qui me permet de voir où se situe ton incompréhesion.

Voici ta version :

first_number = input("Entrez un premier nombre : ")
second_number = input("Entrez un deuxième nombre : ")

while not (first_number.isdigit() and second_number.isdigit()):
    print("Veuillez entrer un nombre valide")
    first_number = input("Entrez un premier nombre : ")
    second_number = input("Entrez un deuxième nombre : ")

resultat = int(first_number) + int(second_number)
print(f"Le résultat de l'addition {first_number} avec {second_number} est égal à {resultat}")

Et la version corrigée :
while True:
    first_number = input("Entrez un premier nombre : ")
    second_number = input("Entrez un deuxième nombre : ")
    if not first_number.isdigit() or not second_number.isdigit():
        print("Veuillez entrer un nombre valide")
    else:
        break

print(f"Le résultat de l'addition {first_number} avec {second_number} est égal à {int(first_number) + int(second_number)}")

Le problème venait du fait que tu répétait les input. Dans le Zen of python il existe le principe DRY (Don't Repeat Yourself). C'est donc cette répétition qui posait problème et non le while ;)

J'espère que c'est plus clair pour toi.

Stéphane.

Inscris-toi

(c'est gratuit !)

Inscris-toi

Tu dois créer un compte pour participer aux discussions.

Créer un compte

Rechercher sur le site

Formulaire de contact

Inscris-toi à Docstring

Pour commencer ton apprentissage.

Tu as déjà un compte ? Connecte-toi.