Kuinka käyttää // Pythonissa lattiajakoon

Python's Floor Division -operaattori//jakaa kaksi numeroa ja pyöristää tuloksen lähimpään kokonaislukuun. Sen käyttö estää oikein hienovaraiset pyöristämisvirheet, varsinkin kun siirretään kokonaislukujakautumislogiikkaa tai työskentelemällä negatiivisilla arvoilla.

Menetelmä 1: Laske lattiajako //

Vaihe 1:Käyttää//saadaksesi jakaminen pyöristettynä.

print(5 // 2)      # 2
print(10 // 3)     # 3
print(9 // 0.5)    # 18.0 (float operand → float result)
print(8.0 // 3)    # 2.0  (still floors)

Vaihe 2:Varmista jako -identiteettia == (a // b) * b + (a % b).

a, b = 17, 5
print(a == (a // b) * b + (a % b))  # True

Vaihe 3:Verrata jhk/nähdä eron.

print(5 / 2)   # 2.5 (true division)
print(5 // 2)  # 2   (floor division)

Menetelmä 2: Korvaa int (x / y) x // y (kun turvallinen)

Vaihe 1:Löydä paikkoja, joissa jaat ja käännä heti int.

# Before
mid = int(len(items) / 2)

Vaihe 2:Korvaa lattiajako selkeämmän tarkoituksen ja vähemmän tuloksia varten.

Lue lisää:Xbox -divisioona on ilmoitettu olevan toinen lomake ennen tilikauden loppua

# After
mid = len(items) // 2

Vaihe 3:Suorita testit positiivisten lukujen identtisten tulosten vahvistamiseksi.

for n in range(1, 11):
    a = int(n / 2)
    b = n // 2
    assert a == b

Menetelmä 3: Hanki jakaminen ja loput yhdessä DivModin kanssa

Vaihe 1:Käyttäädivmod(a, b)Sekä lattiajaoston että moduulin saamiseksi yhdessä puhelussa.

duration = 500
minutes, seconds = divmod(duration, 60)
print(f"{minutes}:{seconds}")  # 8:20

Vaihe 2:Ketjudivmodtuntikausia, minuutteja ja sekuntia.

duration = 9907
minutes, seconds = divmod(duration, 60)
hours, minutes = divmod(minutes, 60)
print(f"{hours}:{minutes:02d}:{seconds:02d}")  # 2:46:07

Menetelmä 4: Käsittele negatiiviset numerot oikein

Vaihe 1:Tarkistaa miten//Kierrokset negatiivisilla (se pyörii aina kohti negatiivista äärettömyyttä).

print(-5 / 2)   # -2.5
print(-5 // 2)  # -3  (floors down)

Vaihe 2:Käyttääint(x / y)taimath.trunc(x / y)Jos tarvitset katkaisua kohti nollaa lattian sijasta.

import math
print(int(-5 / 2))     # -2 (truncates toward zero)
print(math.trunc(-5/2))# -2

Vaihe 3:Mieluummin//Vain kun lattiakäyttäytymistä tarvitaan negatiivisiin tuloksiin.

def pages_needed(total, per_page):
    # Floors down even for negatives; safe for totals ≥ 0
    return (total + per_page - 1) // per_page

Menetelmä 5: Päivitysarvot paikallaan // =

Vaihe 1:Käyttää//=lattia-jakamiseen ja määrittämään takaisin samaan muuttujaan.

x = 23
x //= 4
print(x)  # 5

Vaihe 2:Muista, että sekoittaminen kelluvien kanssa palauttaa kelluvan.

y = 23
y //= 4.0
print(y, type(y))  # 5.0 <class 'float'>

Vaihe 3:Varmista, että operaattori ilmaisee aikomusta selvästi, kun loput eivät tarvita.

batch = 137
batch //= 10  # number of full tens
print(batch)  # 13

Nopeat vinkit:

  • //lattiat;/Palauttaa tarkat jakaminen kelluvuutena.
  • Millä tahansa kelluvalla operandilla,//Palauttaa kelluvan (mutta lattiaa edelleen numeerinen tulos).
  • Käyttäädivmod(a, b)Kun tarvitset sekä osamäärää että loput.
  • Negatiivisten arvojen osalta ole selkeä siitä, haluatko lattiaa (//) tai katkaisu (int()-math.trunc()).

Se on ydin: tavoittaa//Kun haluat, osuus on pyöristetty ja pidädivmodtyökalupakissasi, kun tarvitset myös loput.

Related Posts