-2
votes

Impossible d'obtenir la boucle tandis que sur la base de déclarations booléennes pour fonctionner correctement

Je ne peux pas obtenir la bonne logique derrière les instructions booléennes afin que la fonction fonctionne.

Je basse mon code sur l'exercice de LPTHW 35. Je viens de copier la structure de cet exercice et j'ai essayé de le faire fonctionner. Je voulais tester et voir si je pouvais faire du travail en boucle. P>

Si je tape oui avec Capitol Y, il imprime "Mettez-le sur l'imperméable, M ..", mais il ne fonctionnera pas de la fonction de fonction (). J'obtiens l'erreur suivante: p>

You should make a choice.


2 commentaires

Votre indentation est incompatible. Assurez-vous que l'indentation dans le code que vous montrez est ce que c'est vraiment.


Et comment pouvez-vous appeler pluie lorsque vous deux lignes avant de le définir comme une variable booléenne (avec rain = true )? Avez-vous aussi avoir une fonction appelée pluie (que vous ne nous montrez pas)? C'est pourquoi il est si important que vous créiez un exemple de reproductible minimal pour nous montrer. Lisez également sur Comment poser de bonnes questions , ainsi que Cette question de contrôle .


3 Réponses :


0
votes

Je suppose que vous chargez un module ou définissez la fonction pluie () quelque part avant d'appeler la fonction laine () .

Alors, qu'est-ce qui se passe maintenant, est que, dans le moment où vous déclarez la variable rain = true La définition de variable locale prime sur votre définition de fonction antérieure . Cela implique, plutôt d'appeler la fonction pluie () vous "appelez" la variable pluie .

Afin d'éviter cela, assurez-vous de garder une trace de votre espace de noms. Si vous importez un module contenant pluie , vous pouvez importer le module entier, puis utiliser module_name.rain () . .

Si vous définissez simplement la fonction dans le script, vous devez renommer la fonction ou la variable. Par exemple, remplacer Rain = true par it_is_rainin = true

Bien que cela explique pourquoi pluie () n'est pas appelé, vous devez également faire attention à l'ordre de votre si ... elif ... construction. Si vous entrez 'Oui' , vous allez toujours exécuter le code après l'instruction IF et les conditions suivantes sont ignorées.


0 commentaires

0
votes

Votre programme imprime la déclaration else, car vous n'avez pas tiré le contenu à l'intérieur de votre part d'autre et d'Elif. En ce moment, «vous devriez faire un choix» est imprimé en dehors de votre relevé IF.


0 commentaires

0
votes

Je vais essayer de corriger le code et de donner des conseils: xxx

cherche # !!! Premier: Cet élif ne sera jamais évalué, juste parce que si suivant == "oui" le premier si on gagne, sûrement. Je changerais ça à: xxx

logique derrière quelque chose ici est caché: vous demandez s'il pleut et écrivez: pluie = vrai < / p>

"Comment puis-je activer cette condition depuis la pluie = true?"

Eh bien, si l'utilisateur a dit qu'il ne pleut pas, il ne pleut pas.

Je ne sais pas pourquoi vous utilisez un booléen pré-installé, même si vous avez une entrée de l'utilisateur.

indentation après sinon: déclaration.

Eh bien, votre déclaration aura une entrée "non", car la pluie est vraiment toujours vraie.

Penser que la pluie Boolean est en quelque sorte nécessaire: xxx


0 commentaires