ホームページ  >  に質問  >  本文

python - while(i%3)该怎么理解?

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

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

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

ringa_leeringa_lee2740日前2697

全員に返信(10)返信します

  • 天蓬老师

    天蓬老师2017-04-18 10:15:14

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

    返事
    0
  • PHPz

    PHPz2017-04-18 10:15:14

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

    返事
    0
  • 高洛峰

    高洛峰2017-04-18 10:15:14

    まず第一に、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
  • 阿神

    阿神2017-04-18 10:15:14

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

    返事
    0
  • PHP中文网

    PHP中文网2017-04-18 10:15:14

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

    返事
    0
  • 怪我咯

    怪我咯2017-04-18 10:15:14

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

    返事
    0
  • 怪我咯

    怪我咯2017-04-18 10:15:14

    リーリー

    と同等です リーリー 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
  • 大家讲道理

    大家讲道理2017-04-18 10:15:14

    リーリー

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

    返事
    0
  • 巴扎黑

    巴扎黑2017-04-18 10:15:14

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

    返事
    0
  • 大家讲道理

    大家讲道理2017-04-18 10:15:14

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

    返事
    0
  • キャンセル返事