Cara Melakukan Pembagian Lantai dengan Python
Diterbitkan: 2022-11-02Dalam tutorial ini, Anda akan belajar bagaimana melakukan pembagian lantai dengan Python. Anda akan menggunakan operator // Python, fungsi lantai dari modul matematika Python, dan banyak lagi – dengan contoh kode.
Kita akan mulai dengan ikhtisar operator aritmatika dengan Python dan mempelajari cara kerja operator pembagian lantai //. Kemudian, kita akan mempelajari cara menggunakan metode lain yang setara termasuk fungsi dari modul matematika dan operator untuk melakukan pembagian lantai.
Mari kita mulai…
Operator Aritmatika dengan Python
Dengan Python, Anda dapat menggunakan operator aritmatika untuk melakukan operasi aritmatika sederhana pada bilangan tipe data int
dan float
. Operator ini bertindak pada operan (angka) dan mengembalikan hasil operasi.

Tabel berikut merangkum operator aritmatika di Python dan cara kerjanya:
Operator | Sintaksis | Hasil |
Penambahan (+) | num1+num2 | Mengembalikan jumlah num1 dan num2 |
Pengurangan (-) | num1-num2 | Mengembalikan selisih antara num1 dan num2 |
Perkalian (*) | num1*num2 | Mengembalikan produk dari num1 dan num2 |
Eksponen (**) | num1**num2 | Mengembalikan hasil num1 yang dipangkatkan num2 ; num1 num2 |
Divisi (/) | num1/num2 | Mengembalikan hasil saat num1 dibagi dengan num2 – termasuk bagian pecahan |
Pembagian lantai (/) | num1//num2 | Mengembalikan hasil bagi ketika num1 dibagi dengan num2 |
Modul (%) | num1 % num2 | Mengembalikan sisanya ketika num1 dibagi dengan num2 |
Mari kita ambil beberapa contoh yang menggunakan operator aritmatika ini. Anda dapat mencoba contoh-contoh ini di Python REPL atau di editor Python online Geekflare.
>>> num1 = 18 >>> num2 = 5 >>> num1 + num2 23 >>> num1 - num2 13 >>> num1 * num2 90 >>> num1 ** num2 1889568
Dalam contoh ini, num1
adalah 18 dan num2
adalah 5. Operasi pembagian num1/num2
mengembalikan hasil termasuk bagian pecahan.
Angka 5 masuk ke 18 tiga kali meninggalkan sisa tiga. Oleh karena itu, operasi pembagian lantai, num1//num2
, memberikan hasil bagi 3, sedangkan operator modulo memberikan sisanya – juga 3 dalam kasus ini.
>>> num1/num2 3.6 >>> num1//num2 3 >>> num1 % num2 3
Ini akan memberi Anda gambaran tentang cara kerja operator divisi, divisi lantai, dan modulo. Selanjutnya, kita akan mempelajari operator divisi lantai secara detail.
️ Dalam Python 2, operasi pembagian (/) memotong hasilnya ke bilangan bulat terdekat—mirip dengan operasi pembagian lantai di Python 3. Tutorial ini membahas cara kerja operasi pembagian lantai di Python 3.x.
Pembagian Lantai Menggunakan // Operator

Pertimbangkan operasi pembagian dengan dividen dan pembagi. Dalam num1/num2
, num1
adalah dividen dan num2
adalah pembagi. Untuk melakukan pembagian lantai num1
dan num2
, gunakan num1//num2
.
Operator pembagian lantai (//) mengembalikan hasil bagi dari operasi pembagian—sebagai bilangan bulat atau angka floating point—bergantung pada tipe data operan.
Operator pembagian lantai tidak memastikan bahwa jawabannya selalu bilangan bulat. Jika salah satu dividen ( num1
) atau pembagi ( num2
) adalah float maka hasil dari num1//num2
adalah float. Berikut adalah beberapa contoh.
>>> 18.0//5 3.0 >>> 10.0//4 2.0 >>> 15//4.0 3.0
Jika Anda membutuhkan hasilnya untuk menjadi bilangan bulat, maka Anda harus secara eksplisit memasukkannya ke dalam bilangan bulat menggunakan fungsi int()
:
>>> int(18.0//5) 3 >>> int(10.0//4) 2 >>> int(15//4.0) 3
Apa yang Terjadi di Bawah Terpal?
Saat Anda menggunakan operator pembagian lantai //, metode khusus (juga disebut metode dunder) __floordiv__()
dipanggil. Oleh karena itu, Anda juga dapat menggunakan metode __floordiv__()
pada bilangan bulat atau floating point apa pun, seperti yang ditunjukkan di bawah ini:
num1 = 18 num2 = 5 num1.__floordiv__(num2) # Output: 3
Pembagian Lantai Menggunakan operator.floordiv()

Untuk melakukan pembagian lantai dengan Python, Anda juga dapat menggunakan fungsi floordiv()
dalam modul operator
.
Modul operator Python berisi definisi fungsi efisien yang dapat melakukan semua operasi aritmatika. Oleh karena itu, untuk melakukan pembagian lantai, Anda juga dapat menggunakan fungsi floordiv()
dari modul operator – alih-alih operator //.
Menggunakan fungsi floordiv()
dari modul operator sama dengan menggunakan operator pembagian lantai.
>>> import operator >>> operator.floordiv(18,5) # Output: 3 >>> operator.floordiv(12,5.0) # Output: 2.0
Pembagian Lantai Menggunakan math.floor()
Bagaimana Fungsi Lantai Bekerja?
Dalam matematika, fungsi
floor()
mengambil sembarang bilangan realx
sebagai input dan mengembalikan bilangan bulat (hasil). Hasil ini adalah bilangan bulat terbesar yang lebih kecil atau sama dengan bilangan real x.
Untuk memahami ini dengan lebih baik, mari kita ambil beberapa contoh dan visualisasikan angka-angka ini pada garis bilangan.
Contoh 1 : Perhatikan bilangan 2.3. Bilangan bulat terbesar yang kurang dari atau sama dengan 2,3 adalah 2; jadi lantai(2.3) akan kembali 2.


Contoh 2: Anda juga dapat menerapkan definisi yang sama saat bekerja dengan angka negatif. Perhatikan angka -1.7. Bilangan bulat terbesar yang kurang dari atau sama dengan -1.7 adalah -2; jadi lantai (-1.7) akan mengembalikan -2.

Mari kita verifikasi hasil di atas menggunakan fungsi floor()
dari modul matematika.
>>> from math import floor >>> floor(2.3) 2 >>> floor(-1.7) -2
Untuk melakukan pembagian lantai, Anda dapat memanggil fungsi floor()
dengan num1/num2
sebagai argumen. Saat memotong atau membulatkan hasilnya ke bilangan bulat terdekat, ini setara dengan operasi pembagian lantai.
Anda dapat secara eksplisit mengimpor fungsi floor()
dari modul math
, seperti yang ditunjukkan:
from math import floor num1 = 18 num2 = 5 floor(num1/num2) # Output: 3
Atau, Anda juga dapat mengimpor hanya modul math
dan kemudian mengakses fungsi floor()
menggunakan math.floor()
.
import math num1 = 18 num2 = 5 math.floor(num1/num2) # Output: 3
Berbeda dengan fungsi floordiv()
dari modul operator dan operator pembagian lantai //, menggunakan math.floor(num1/num2)
memastikan bahwa hasilnya adalah bilangan bulat. Metode ini membuat kode dapat dibaca dan menghilangkan langkah type-casting.
import math num1 = 18.0 num2 = 5 math.floor(num1/num2) # Output: 3
Contoh Pembagian Lantai di Python

Mari kita akhiri diskusi kita dengan contoh praktis: Pencarian biner.
Pencarian biner adalah algoritma pencarian yang efisien yang memungkinkan Anda mencari elemen target melalui array yang diurutkan dalam waktu O(log n) , di mana n adalah ukuran array.
Algoritma ini bekerja dengan membagi interval pencarian menjadi setengah pada setiap langkah. Ini dilakukan tergantung pada apakah titik tengah interval cocok dengan target (pencarian berakhir saat kecocokan ditemukan!) atau kurang dari atau lebih besar dari target. Karena ukuran larik dikurangi setengahnya pada setiap langkah, titik tengah tidak selalu dievaluasi menjadi bilangan bulat.
itemlist = [5,7,18,21,34,45] item = 7
Pertimbangkan implementasi algoritma pencarian biner berikut. Fungsi binary_search()
mengambil nomor ( item
) dan daftar ( itemlist
) dan mencari kemunculan item
dalam itemlist
.
- Jika
item
ditemukan, fungsi mengembalikan indeks di manaitem
terjadi. - Lain, ia mengembalikan
None
.
def binary_search(item, itemlist): # get the list size listsize = len(itemlist) - 1 # start at the two ends of the list lowerIdx = 0 upperIdx = listsize while lowerIdx <= upperIdx: # calculate the middle point # use normal division instead of floor division midPt = (lowerIdx + upperIdx)/ 2 # if item is found, return the index if itemlist[midPt] == item: return midPt # otherwise get the next midpoint if item > itemlist[midPt]: lowerIdx = midPt + 1 else: upperIdx = midPt - 1 if lowerIdx > upperIdx: return None
Implementasi ini secara fungsional benar kecuali bahwa kami belum memperhitungkan midPt
yang tidak mengevaluasi ke bilangan bulat saat pencarian berlangsung.
binary_search(item,itemlist)
Jika kita memanggil fungsi tersebut, kita mengalami TypeError
yang menyatakan bahwa indeks daftar harus berupa bilangan bulat atau irisan, bukan float.
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-3-a5f12ebc3145> in <module> ----> 1 binary_search(item,itemlist) <ipython-input-2-524ef6900b1f> in binary_search(item, itemlist) 12 13 # if item is found, return the index ---> 14 if itemlist[midPt] == item: 15 return midPt 16 # otherwise get the next midpoint TypeError: list indices must be integers or slices, not float
Kami memodifikasi definisi fungsi untuk menggunakan operator pembagian lantai:
def binary_search(item, itemlist): # get the list size listsize = len(itemlist) - 1 # start at the two ends of the list lowerIdx = 0 upperIdx = listsize while lowerIdx <= upperIdx: # calculate the middle point # use floor division midPt = (lowerIdx + upperIdx)// 2 # if item is found, return the index if itemlist[midPt] == item: return midPt # otherwise get the next midpoint if item > itemlist[midPt]: lowerIdx = midPt + 1 else: upperIdx = midPt - 1 if lowerIdx > upperIdx: return None
Fungsi mengembalikan indeks di mana item 7 ditemukan, yang merupakan indeks satu.
binary_search(item,itemlist) # Output: 1
Kesimpulan
Saya harap tutorial ini membantu Anda memahami cara melakukan pembagian lantai dengan Python. Berikut ringkasan berbagai metode yang telah Anda pelajari:
- Dalam Python, operator b melakukan operasi yang ditentukan oleh operator dengan a dan b sebagai operan dan mengembalikan hasil operasi.
- Anda dapat menggunakan operator pembagian lantai Python //; a//b mengembalikan hasil bagi dari operasi pembagian a/b.
- Atau, Anda dapat menggunakan fungsi floordiv() setara yang didefinisikan dalam modul operator Python dengan sintaks: operator.floordiv(a,b) untuk mendapatkan hasil a//b.
- Semua metode di atas mengembalikan hasil bagi tetapi tipe datanya bisa berupa float atau int tergantung pada nilai a dan b. Jadi, Anda harus memberikan nilai pengembalian ke bilangan bulat.
- Fungsi floor() dari modul matematika Python juga dapat digunakan untuk melakukan pembagian lantai: math.floor(a,b) setara dengan a//b dan mengembalikan bilangan bulat. Bila Anda ingin hasilnya menjadi bilangan bulat, pertimbangkan untuk menggunakan fungsi lantai dari modul matematika.
Selanjutnya, pelajari cara bekerja dengan defaultdict di Python.