Rumah > Soal Jawab > teks badan
在看慕课的课程,有段代码为:
i = 1
while(i % 3):
print(i),
if (i >= 10):
break
i += 1
while后面的条件要为真,才能够执行代码块,但是i%3这个代表了什么条件呢?
天蓬老师2017-04-18 10:15:14
% 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
PHPz2017-04-18 10:15:14
Isu sejarah, 0 adalah palsu, bukan 0 adalah benar, jadi while(i%3)
bersamaan dengan while(i%3 != 0)
.
高洛峰2017-04-18 10:15:14
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 .
阿神2017-04-18 10:15:14
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!
PHP中文网2017-04-18 10:15:14
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整除的数吧?
怪我咯2017-04-18 10:15:14
Mudah while(i%3)
bermaksud melangkau gelung apabila saya boleh dibahagi dengan 3.
怪我咯2017-04-18 10:15:14
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
大家讲道理2017-04-18 10:15:14
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.
巴扎黑2017-04-18 10:15:14
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.
大家讲道理2017-04-18 10:15:14
Apabila saya gelung sehingga boleh dibahagikan dengan 3, keluar dari gelung