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

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

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

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

ringa_lee
ringa_lee

ringa_lee

membalas semua(10)
Peter_Zhu

% Operator selebihnya adalah untuk melihat sama ada yang terakhir boleh dibahagikan dengan yang pertama Syarat i%3 adalah untuk menentukan sama ada i boleh dibahagi dengan 3, jadi hanya terdapat dua keputusan: 0 atau 1 %3 = 0 10% 3 = 1, operator asas, pengarang boleh menyemak maklumat lanjut, terima kasih

PHPzhong

Isu sejarah, 0 adalah palsu, bukan 0 adalah benar, jadi while(i%3) bersamaan dengan while(i%3 != 0).

小葫芦

Pertama sekali, mari kita lihat keadaan pernyataan while (i % 3 di tingkat atas ini menjelaskan bahawa % bermaksud mencari baki, dan i% 3 bermaksud mencari baki i dibahagikan dengan 3, jadi i maksud keadaan sementara ialah Baki selepas i bahagi dengan 3 adalah lebih besar daripada 0.
Sekarang kita tahu bahawa nilai i ialah 1, jadi keadaan sementara ditetapkan, keluaran 1, selepas i++, nilai i ialah 2. Pada masa ini, keadaan while juga dipenuhi dan gelung mengeluarkan 2,
Kemudian i++ Pada masa ini, nilai i ialah 3 dan tidak memenuhi syarat Gelung while tidak dilaksanakan dan melompat keluar .

阿神

Seperti yang ditanya oleh penyoal, syarat selepas sementara mesti benar untuk melaksanakan blok kod Jika nilai i%3 ialah 0, ia adalah palsu dan blok kod berikut tidak akan dilaksanakan jika ia bukan 0 (. 1 dan 2 ), ia bersamaan dengan benar, dan blok kod seterusnya dilaksanakan. Penyataan if juga adalah sama. ia adalah benar, dan ia dilaksanakan. Harap ini membantu!

Ty80

Bukankah hasil daripada

i%3 mendapat baki Sebagai contoh, hasil daripada i=3 ialah 0 Hasil daripada i=5 ialah 2 dan apabila membuat pertimbangan bersyarat, ia akan ditukar secara automatik? kepada jenis Boolean, jadi ia tidak boleh dibahagikan dengan 3 boleh dikira, jadi sama ada 1 atau 2, ia boleh dimasukkan, jadi soalan ini sepatutnya mencari 找出10以内不能被3整除的数吧?

刘奇

Mudah while(i%3) bermaksud melangkau gelung apabila saya boleh dibahagi dengan 3.

刘奇
while (i % 3) { /* ... */ }

bersamaan dengan

while (i % 3 != 0) { /* ... */ }

i % 3 dalam python ialah operasi pembahagian modular (modulo) Untuk operan integer a, b memenuhi a / b * b + a % b == a

.

a jika dan hanya jika b membahagikan a % b == 0 sama rata.

Jadi syarat untuk penamatan gelung ialah i boleh dibahagikan 3

大家讲道理
while(i%3) 

bermakna gelung berhenti apabila saya boleh dibahagikan dengan 3. 0 adalah palsu, dan bukan-0 adalah benar. Apabila i%3==0, tiada gelung.

巴扎黑

i%3 Pengiraan modul, terdapat tiga situasi: 0 1 2 Nilai dinilai benar atau salah mengikut NaN undefined null 0 "" false, semuanya palsu, dan selebihnya benar Pada masa ini, apabila modulus ialah 0, ia adalah palsu, ia tidak akan memasuki kitaran.

大家讲道理

Apabila saya gelung sehingga boleh dibahagikan dengan 3, keluar dari gelung

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan