在看慕课的课程,有段代码为:
i = 1 while(i % 3): print(i), if (i >= 10): break i += 1
while后面的条件要为真,才能够执行代码块,但是i%3这个代表了什么条件呢?
ringa_lee
% 求餘運算符,是看後者能否被前者整除, i%3 這個條件就是判斷i能不能被3整除,所以結果只有兩種0 or 1 ! 例如9%3 = 0 10%3 = 1,基礎運算符,樓主可以多查一下資料,謝謝
歷史遺留問題,0為假,非0為真,所以while(i%3)等价于while(i%3 != 0).
while(i%3)
while(i%3 != 0)
首先,我們先看while語句的條件(i % 3),這個樓上解釋了%是求餘的意思,i%3的意思是求i除3的餘數,因此while條件的意思就是i除3餘數大於0.現在我們已知i的值為1,所以while條件成立,輸出1,i++之後,i的值為2此時也滿足while條件進入循環輸出2,接著i++,此時i的值為3不滿足條件,不執行while循環,跳出。
正如題主問的,while後面的條件要為真,才能夠執行程式碼區塊,i%3如果值為0,則為false,不執行後面的程式碼區塊,不為0的(1和2),則相當於true,執行後面的程式碼區塊,if語句也是相同的,條件語句如果為0,為false,不執行;非0,為true,執行。希望能幫到你!
i%3的结果难道不是获取余数么?比如i=3结果是0 i=5结果是2 而在做条件判断的时候会自动转成布尔类型,所以不能被3整除的才能进行运算,因此不管是1还是2都是可以进去,所以这题应该是求得找出10以内不能被3整除的数吧?
i%3
i=3
0
i=5
2
找出10以内不能被3整除的数吧?
單純的while(i%3)是指當i能被3整除時,跳過該循環。
while (i % 3) { /* ... */ }
等價於
while (i % 3 != 0) { /* ... */ }
python 中的 i % 3 是模除(modulo)运算,对于整数操作数 a,b 满足 a / b * b + a % b == a
i % 3
a
b
a / b * b + a % b == a
當且僅當 a 整除 b 时,a % b == 0。
a % b == 0
所以循環終止的條件是 i 整除 3
i
3
的意思是i可以被3除盡的時候循環停止。 0為假,非0為真就是這個意思。當i%3==0的時候,就不循環了。
i%3 求模計算,有三種情況0 1 2 一個值判斷真假遵循NaN undefined null 0 "" false 都為假,其餘都為真,這時當求模為0時,即為假,就不會進該循環。
當i循環到能被3整除就跳出循環
% 求餘運算符,是看後者能否被前者整除, i%3 這個條件就是判斷i能不能被3整除,所以結果只有兩種0 or 1 ! 例如9%3 = 0 10%3 = 1,基礎運算符,樓主可以多查一下資料,謝謝
歷史遺留問題,0為假,非0為真,所以
while(i%3)
等价于while(i%3 != 0)
.首先,我們先看while語句的條件(i % 3),這個樓上解釋了%是求餘的意思,i%3的意思是求i除3的餘數,因此while條件的意思就是i除3餘數大於0.
現在我們已知i的值為1,所以while條件成立,輸出1,i++之後,i的值為2此時也滿足while條件進入循環輸出2,
接著i++,此時i的值為3不滿足條件,不執行while循環,跳出。
正如題主問的,while後面的條件要為真,才能夠執行程式碼區塊,i%3如果值為0,則為false,不執行後面的程式碼區塊,不為0的(1和2),則相當於true,執行後面的程式碼區塊,if語句也是相同的,條件語句如果為0,為false,不執行;非0,為true,執行。希望能幫到你!
i%3
的结果难道不是获取余数么?比如i=3
结果是0
i=5
结果是2
而在做条件判断的时候会自动转成布尔类型,所以不能被3整除的才能进行运算,因此不管是1还是2都是可以进去,所以这题应该是求得找出10以内不能被3整除的数吧?
單純的
while(i%3)
是指當i能被3整除時,跳過該循環。等價於
python 中的
i % 3
是模除(modulo)运算,对于整数操作数a
,b
满足a / b * b + a % b == a
當且僅當
a
整除b
时,a % b == 0
。所以循環終止的條件是
i
整除3
的意思是i可以被3除盡的時候循環停止。 0為假,非0為真就是這個意思。當i%3==0的時候,就不循環了。
i%3 求模計算,有三種情況0 1 2 一個值判斷真假遵循NaN undefined null 0 "" false 都為假,其餘都為真,這時當求模為0時,即為假,就不會進該循環。
當i循環到能被3整除就跳出循環