Operator python // adalah pembagian bilangan bulat.

Tetapi dalam kasus a * a//b, Ini berfungsi seperti * a/b..

a = 10
b = 3
a * a//b
>> 33

a//b * a
>> 30

temp = a//b
a * temp
>> 30

Mengapa ini terjadi??

-6
Kiseok 30 Januari 2020, 15:46

2 jawaban

Jawaban Terbaik

Anda mungkin bermaksud menulis a * (a//b). Perkalian terjadi sebelum pembagian, karena di sebelah kiri dan memiliki prioritas yang sama.

3
blue_note 30 Januari 2020, 12:49

Urutan operasi sama dalam kedua kasus, tetapi ada operasi pemotongan bilangan bulat implisit yang terjadi di bagian yang berbeda dari dua pernyataan.

Dalam kasus pertama, Anda memotong ke bilangan bulat di akhir, dalam kasus kedua, Anda melakukannya di awal. Akibatnya, Anda mendapatkan jawaban yang berbeda.

0
0 0 30 Januari 2020, 12:51