在看慕课的课程,有段代码为:
i = 1
while(i % 3):
print(i),
if (i >= 10):
break
i += 1
while后面的条件要为真,才能够执行代码块,但是i%3这个代表了什么条件呢?
天蓬老师2017-04-18 10:15:14
% 剰余演算子は、後者が前者で割り切れるかどうかを確認するもので、条件 i%3 は i が 3 で割り切れるかどうかを判断するため、結果は 0 または 1 の 2 つだけになります。たとえば、9%3 = 0 10%3 = 1. 基本的な演算子、作者は詳細を確認できます、ありがとう
高洛峰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 ループは実行されずに飛び出します。
阿神2017-04-18 10:15:14
質問者が質問したように、コードブロックを実行するには、while の後の条件が true でなければなりません。i%3 の値が 0 の場合、それは false となり、0 でない場合は次のコードブロックは実行されません。 2)、これは true と同等であり、その後のコード ブロックも同様です。条件文が 0 の場合は false、0 以外の場合は実行されません。 true である場合、実行されます。これがお役に立てば幸いです!
PHP中文网2017-04-18 10:15:14
i%3
的结果难道不是获取余数么?比如i=3
结果是0
i=5
结果是2
而在做条件判断的时候会自动转成布尔类型,所以不能被3整除的才能进行运算,因此不管是1还是2都是可以进去,所以这题应该是求得找出10以内不能被3整除的数吧?
怪我咯2017-04-18 10:15:14
リーリー
は
と同等です リーリー Python のi % 3
は、整数オペランド a
の場合、b
は a / b * を満たします。 b + a % b == a
i % 3
是模除(modulo)运算,对于整数操作数 a
,b
满足 a / b * b + a % b == a
当且仅当 a
整除 b
时,a % b == 0
。
所以循环终止的条件是 i
整除 3
a % b == 0
は、a
が b
を除算する場合に限ります。
i
が 3
を割るということになります🎜大家讲道理2017-04-18 10:15:14
リーリー
は、i を 3 で割ることができるときにループが停止することを意味します。 0 は false、0 以外は true という意味です。 i%3==0 の場合、ループはありません。
巴扎黑2017-04-18 10:15:14
i%3 モジュロ計算には、次の 3 つの状況があります。 0 1 2 値の真偽の判定は、NaN unknown null 0 "" false に従い、すべてが false、残りが true のとき、モジュラスは次のとおりです。 0、それは false なので、このサイクルには入りません。