J'ai une question concernant pour la boucle de travail la sortie est: 0,1,2,3,4,5,6,7,8,9 P> < p> pourquoi ce n'est pas 0,1,2,3,4
parce que nous mettons à jour m valeur m-1 p> p>
4 Réponses :
c'est parce que Python Par conséquent, vous n'avez pas changé la valeur de la variable précédente, vous avez simplement créé une autre variable em> appelée int code> s est immuable , signifiant ne peut pas changer la valeur d'un. p>
m code>, écrasant également le précédent dans le processus. p>
Le nombre de fois qu'un pour code> boucle exécuter sera exécuté, est déjà évalué à la pour code> boucle elle-même, et le code après le pour code> La boucle ne peut pas affecter combien de fois cela fonctionne. Il est corrigé, jusqu'à ce qu'il soit modifié avant que le pour code> est exécuté, une erreur se produit ou une pause code> se trouve à l'intérieur. P>
Public statique Void Main (String [] args) {int m = 10; pour (int i = 0; i <= m; i = i + 1) {m = m-1; System.out.println (i); } 0 1 2 3 4 5
Vous pouvez vérifier le code ci-dessus qui est écrit en Java et affecte l'exécution de la boucle
Je parlais de python, c'est comme ça que ça marche dans Python, c'est différent en Java et C ++ parce que la boucle de la boucle est comme une boucle tandis que
Le type code> code> représente une séquence immuable de nombres. des moyens une fois qu'un objet de plage est créé comme Donc, si vous souhaitez modifier l'exécution de la boucle, vous avez besoin d'itérateur qui produit une instance mutable. P> Plage (A, B) -> (A, A + 1, A + 2, ... B) code> alors si vous modifiez la valeur des limites (démarrage ou fin), il n'affectera pas le pour code> instruction. p>
Je vais vous donner une réponse un peu plus détaillée.
Donc, tout d'abord, de tels problèmes commencent lorsque vous commencez à mettre en œuvre Java, C # etc concepts à Python. Il convient de noter que Python est similaire à d'autres langues de certains aspects et différents dans d'autres. P>
alors ici votre boucle ne fonctionne pas de i = 0 à i = 11, comme vous décréparez sur chaque itération venez maintenant à Python (le grand), vous enregistrez dans gamme () . Vous penseriez que si vous faites quelque chose comme ceci: Vous devriez obtenir ceci: mais en fait, vous obtiendrez ceci: C'est là que vous devez être pythonique. Une fois que vous l'avez dit de commencer à 0 et arrêtez-vous à Cependant, Le comportement de Java's code> pour la boucle code> peut être implémenté à l'aide de pour la boucle code> de Python n'est pas identique à celui de Java. En Java for Loop est évalué pour la condition de test à chaque itération, donc lorsque vous augmentez ou décrémentez une variable utilisée dans la condition d'évaluation de la boucle, elle affecte la boucle. Par exemple: p> m code>. Vous pouvez la visualiser certains comme ceci: p> i code> est imprimé et sur le test de la 7ème boucle, la condition devient false des pauses de boucle. < / p> impression (plage (4)) code> p> [0, 1, 2, 3] code> p> plage (0, 4) code> p> m code> il retournera une référence m code>, le générateur code> est déjà créé une fois que la boucle a démarré. P> pendant que la boucle code> en python. p> p>
Étant donné que la plage code> a déjà été créée avec la valeur d'origine de
m code>.La plage () est évaluée une fois avant que la boucle ne commence.
Veuillez ne pas ajouter des balises non pertinentes à votre question.
En ce qui concerne la boucle de travail, il s'agit de la première initialisation de la variable (disons à I variables), puis vérifiez la condition si la condition est vraie, elle s'exécute pour le corps de la boucle, puis à nouveau (variable I) et vérifiez à nouveau la condition. Et ici la valeur de condition change chaque temps.
Est-ce que cette boucle fonctionne différente de celle de la boucle dans Java ou C?
Oui, cette boucle est différente de celles qui fonctionnent différemment.