Maison > Questions et réponses > le corps du texte
在看慕课的课程,有段代码为:
i = 1
while(i % 3):
print(i),
if (i >= 10):
break
i += 1
while后面的条件要为真,才能够执行代码块,但是i%3这个代表了什么条件呢?
天蓬老师2017-04-18 10:15:14
% L'opérateur reste sert à voir si ce dernier est divisible par le premier. La condition de i%3 est de déterminer si i est divisible par 3, il n'y a donc que deux résultats : 0 ou 1. Par exemple, 9 ! %3 = 0 10% 3 = 1, opérateur de base, l'auteur peut vérifier plus d'informations, merci
PHPz2017-04-18 10:15:14
Problèmes historiques, 0 est faux, non-0 est vrai, donc while(i%3)
est équivalent à while(i%3 != 0)
.
高洛峰2017-04-18 10:15:14
Tout d'abord, regardons la condition de l'instruction while (i % 3). Cela explique à l'étage que % signifie trouver le reste, et i% 3 signifie trouver le reste de i divisé par 3, donc le La signification de la condition while est Le reste après que i divisé par 3 est supérieur à 0.
Maintenant nous savons que la valeur de i est 1, donc la condition while est établie, sortie 1, après i++, la valeur de i est 2. À ce moment, la condition while est également satisfaite et la boucle génère 2,
Puis i++ À ce moment, la valeur de i est 3 et ne remplit pas la condition. La boucle while n'est pas exécutée et saute. .
阿神2017-04-18 10:15:14
Comme l'interrogateur l'a demandé, la condition après while doit être vraie pour exécuter le bloc de code. Si la valeur de i%3 est 0, elle est fausse et le bloc de code suivant ne sera pas exécuté s'il n'est pas 0 (. 1 et 2 ), cela équivaut à true et le bloc de code suivant est exécuté. L'instruction if est également la même. Si l'instruction conditionnelle est 0, elle est fausse et elle n'est pas exécutée si elle n'est pas 0. c'est vrai, et c'est exécuté. J'espère que cela aide!
PHP中文网2017-04-18 10:15:14
Le résultat de
i%3
n'obtient-il pas le reste ? Par exemple, le résultat de i=3
est 0
i=5
Le résultat est 2
et lors d'un jugement conditionnel, il sera automatiquement converti en De type booléen, donc il ne peut pas être divisible par 3 peut être calculé, donc que ce soit 1 ou 2, il peut être saisi, donc cette question devrait être de trouver 找出10以内不能被3整除的数吧?
怪我咯2017-04-18 10:15:14
Simple while(i%3)
signifie sauter la boucle lorsque i est divisible par 3.
怪我咯2017-04-18 10:15:14
while (i % 3) { /* ... */ }
équivaut à
while (i % 3 != 0) { /* ... */ }
i % 3
en python est une opération de division modulaire (modulo) Pour les opérandes entiers a
, b
satisfait a / b * b + a % b == a
a
si et seulement si b
divise a % b == 0
uniformément.
La condition de terminaison de la boucle est donc i
divisible 3
大家讲道理2017-04-18 10:15:14
while(i%3)
signifie que la boucle s'arrête lorsque je peux être divisé par 3. 0 est faux et non-0 est vrai. Lorsque i%3==0, il n'y a pas de boucle.
巴扎黑2017-04-18 10:15:14
i%3 Calcul Modulo, il y a trois situations : 0 1 2 Une valeur est jugée vraie ou fausse selon NaN indéfini null 0 "" faux, tous sont faux, et le reste est vrai à ce moment, quand le. le module est 0, il est faux, il n'entrera pas dans le cycle.
大家讲道理2017-04-18 10:15:14
Quand je boucle jusqu'à ce qu'il soit divisible par 3, sors de la boucle