Fungsi ini melakukan divisi biner. Namun, saya bingung dengan kondisi loop "sementara LEN (b) ≤ Len (a) dan a".

Kenapa ada "dan" dalam kondisi ini?

Bukankah "a" daftar? Jadi, bagaimana len (b) harus lebih besar dari itu?

enter image description here

Terima kasih untuk bantuannya! <3.

-3
Rose 29 Mei 2021, 03:16

4 jawaban

Jawaban Terbaik

Ini mengevaluasi apakah "A" benar atau salah. Ini benar-benar mengevaluasi ukuran atau panjang "a". Jika "a" memiliki nilai-nilai maka akan dievaluasi untuk benar. Jika "A" kosong, itu akan mengevaluasi ke 0 atau salah.

Panjang "A" dan "B" dapat menjadi 0 dan jika "dan" tidak termasuk dan "a" kosong maka ekspresi "jika [0]" akan menyebabkan pengecualian di luar batas.

Pada dasarnya, abaikan loop sementara jika "A" kosong. Sepertinya akan lebih sederhana untuk memeriksa status "A" pertama.

1
matdon 29 Mei 2021, 00:33

Cara membaca while loop

Seperti yang Anda miliki dalam kode Anda:

while len(b) <= len(a) and a:

Ini berarti memiliki 2 kondisi , len(b) <= len(a) dan a. Jadi jangan baca sebagai len(b) <= len(a) and a!


Mari kita baca a

Kondtion kedua ({a) mungkin terlihat aneh, karena dalam kehidupan nyata yang tidak masuk akal.

Tetapi bahasa pemrograman berbeda dari kalimat kehidupan nyata

Katakan memiliki kode ini:

kode 1

a = []
print(a)

kode 2

a = [1, 2, 3, 3]
print(a)

  • kode 1 akan mencetak False

  • kode 2 akan mencetak True

Alasannya adalah, dalam python ketika variabel memiliki nilai di dalamnya, itu sama dengan True .


Kesimpulan

Kembali ke kode ini:

while len(b) <= len(a) and a:

Kode itu juga berarti terus while len(b) <= len(a) dan a == True.


Saya sangat berharap ini membantu Anda :)

0
Harvest Z'Hann 29 Mei 2021, 01:12

Mengapa ada "dan" dalam kondisi ini?

Sementara loop sedang memeriksa 2 kondisi, pertama-tama memeriksa bahwa panjang daftar b kurang dari atau sama dengan panjang daftar a. Kemudian pernyataan and digunakan untuk memberi tahu penerjemah yang ingin Anda periksa kondisi kedua, dalam hal ini konten a. and hanya memberi tahu penerjemah untuk memeriksa beberapa kondisi.

0
Jared 29 Mei 2021, 00:21

Dalam Python, daftar kosong memiliki nilai boolean 0, jadi and a mungkin memeriksa daftar itu a tidak kosong

1
David 29 Mei 2021, 00:21