python - while(i%3)该怎么理解?
ringa_lee
ringa_lee 2017-04-18 10:13:14
0
10
2750

在看慕课的课程,有段代码为:

i = 1
while(i % 3): 
    print(i),
    if (i >= 10):
        break
    i += 1

while后面的条件要为真,才能够执行代码块,但是i%3这个代表了什么条件呢?

ringa_lee
ringa_lee

ringa_lee

répondre à tous(10)
Peter_Zhu

% 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

PHPzhong

Problèmes historiques, 0 est faux, non-0 est vrai, donc while(i%3) est équivalent à while(i%3 != 0).

小葫芦

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. .

阿神

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!

Ty80

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整除的数吧?

刘奇

Simple while(i%3) signifie sauter la boucle lorsque i est divisible par 3.

刘奇
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

大家讲道理
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.

巴扎黑

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.

大家讲道理

Quand je boucle jusqu'à ce qu'il soit divisible par 3, sors de la boucle

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal