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

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

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

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

ringa_lee
ringa_lee

ringa_lee

全員に返信(10)
Peter_Zhu

% 剰余演算子は、後者が前者で割り切れるかどうかを確認するもので、条件 i%3 は i が 3 で割り切れるかどうかを判断するため、結果は 0 または 1 の 2 つだけになります。たとえば、9%3 = 0 10%3 = 1. 基本的な演算子、作者は詳細を確認できます、ありがとう

いいねを押す +0
PHPzhong

歴史に残された問題、0は偽、0以外は真なのでwhile(i%3)等价于while(i%3 != 0).

いいねを押す +0
小葫芦

まず第一に、while ステートメント (i % 3) の条件を見てみましょう。上の階では、% は剰余を求めることを意味し、i% 3 は i を 3 で割った剰余を求めることを意味すると説明しました。つまり、while 条件は次のことを意味します。 i を 3 で割るには、余りは 0 より大きくなければなりません。
i の値が 1 であることがわかったので、while 条件が成立し、1 が出力されます。i++ の後、i の値は 2 になります。このとき、while は条件も満たされており、ループは 2 を出力します。
then i++ このとき、i の値は 3 であり、条件を満たしていません。while ループは実行されずに飛び出します。

いいねを押す +0
阿神

質問者が質問したように、コードブロックを実行するには、while の後の条件が true でなければなりません。i%3 の値が 0 の場合、それは false となり、0 でない場合は次のコードブロックは実行されません。 2)、これは true と同等であり、その後のコード ブロックも同様です。条件文が 0 の場合は false、0 以外の場合は実行されません。 true である場合、実行されます。これがお役に立てば幸いです!

いいねを押す +0
Ty80

i%3的结果难道不是获取余数么?比如i=3结果是0 i=5结果是2 而在做条件判断的时候会自动转成布尔类型,所以不能被3整除的才能进行运算,因此不管是1还是2都是可以进去,所以这题应该是求得找出10以内不能被3整除的数吧?

いいねを押す +0
刘奇

単純な while(i%3) は、i が 3 で割り切れる場合、ループをスキップすることを意味します。

いいねを押す +0
刘奇

リーリー

と同等です リーリー Python のi % 3 は、整数オペランド a の場合、ba / b * を満たします。 b + a % b == a

i % 3 是模除(modulo)运算,对于整数操作数 ab 满足 a / b * b + a % b == a

当且仅当 a 整除 b 时,a % b == 0

所以循环终止的条件是 i 整除 3a % b == 0 は、ab を除算する場合に限ります。

🎜つまり、ループ終了の条件は i3 を割るということになります🎜
いいねを押す +0
大家讲道理

リーリー

は、i を 3 で割ることができるときにループが停止することを意味します。 0 は false、0 以外は true という意味です。 i%3==0 の場合、ループはありません。

いいねを押す +0
巴扎黑

i%3 モジュロ計算には、次の 3 つの状況があります。 0 1 2 値の真偽の判定は、NaN unknown null 0 "" false に従い、すべてが false、残りが true のとき、モジュラスは次のとおりです。 0、それは false なので、このサイクルには入りません。

いいねを押す +0
大家讲道理

3で割り切れるまでループしたらループから抜け出す

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート