Bagaimana saya bisa menemukan sisa pembagian angka dengan Python?
Misalnya:
Jika angka 26 dan angka yang dibagi 7, maka sisa pembagian adalah 5.
(karena 7 + 7 + 7 = 21 dan 26-21 = 5.)
Bagaimana saya bisa menemukan sisa pembagian angka dengan Python?
Misalnya:
Jika angka 26 dan angka yang dibagi 7, maka sisa pembagian adalah 5.
(karena 7 + 7 + 7 = 21 dan 26-21 = 5.)
Jawaban:
Anda mencari operator modulo:
sebagai contoh:
Tentu saja, mungkin mereka ingin Anda menerapkannya sendiri, yang juga tidak terlalu sulit.
sumber
-10 % 3 == 2
. Namuna/b*b + a%b == a
tetap berlaku, karena python selalu membulatkan ke -Infinity, tidak seperti beberapa bahasa lain, yang membulatkan ke 0 tetapi akan mengembalikan -1.%
melakukan modulus yang benar, yang mengembalikan nilai pada kisaran[0, divisor)
dan berpasangan dengan pembagian lantai (menuju infinity negatif). Bahasa C menggunakan%
operator untuk operasi selanjutnya yang mengembalikan nilai pada kisaran(-divisor, divisor)
dan berpasangan dengan baik dengan pembagian standar (menuju nol).Sisa dari suatu divisi dapat ditemukan menggunakan operator
%
:Jika Anda membutuhkan hasil bagi dan modulo, ada
divmod
fungsi bawaan :sumber
26% 7 (Anda akan mendapatkan sisanya)
26/7 (Anda akan mendapatkan pembagi bisa menjadi nilai float)
26 // 7 (Anda akan mendapatkan nilai integer only integer))
sumber
Jika Anda ingin mendapatkan hasil bagi dan tetap dalam satu baris kode (penggunaan lebih umum), gunakan:
sumber
Jika Anda ingin menghindari modulo, Anda juga dapat menggunakan kombinasi dari empat operasi dasar :)
sumber
Dari Python 3.7, ada
math.remainder()
fungsi baru :Keluaran:
Catatan, seperti di atas, tidak sama dengan
%
.Mengutip dokumentasi :
Issue29962 menjelaskan alasan untuk membuat fungsi baru.
sumber
Gunakan% sebagai ganti / ketika Anda membagi. Ini akan mengembalikan sisanya untuk Anda. Jadi dalam kasus Anda
sumber
Modulo akan menjadi jawaban yang benar, tetapi jika Anda melakukannya secara manual, ini akan berhasil.
sumber
Kita dapat menyelesaikan ini dengan menggunakan operator modulus (%)
26% 7 = 5;
tetapi 26/7 = 3 karena akan memberikan hasil bagi tetapi% operator akan memberikan sisanya.
sumber
Anda dapat menemukan sisanya menggunakan Contoho operator modul
Ini akan mencetak 4
sumber
Jika Anda ingin sisa masalah divisi Anda, cukup gunakan aturan sisa yang sebenarnya, seperti dalam matematika. Memang ini tidak akan memberi Anda hasil desimal.
Jika Anda ingin membuatnya dalam format kalkulator, cukup gantikan
valone = 8
denganvalone = int(input("Value One"))
. Lakukan hal yang sama denganvaltwo = 3
, tetapi jelas vairables berbeda.sumber
valone/valtwo
ke int. selain itu akan menghasilkan angka float.Anda dapat menetapkan suatu fungsi dan menyebutnya sisa dengan 2 nilai seperti rem (angka1, angka2) yang mengembalikan angka1% angka2 kemudian buat sesaat dan tetapkan benar lalu cetak dua input untuk fungsi Anda yang memegang nomor 1 dan 2 kemudian cetak (rem (angka1, angka2)
sumber