Luvut Pythonissa

Erota kokonaisluku int ja liukuluku float. Liukuluvut kuvaavat lukuja likimääräisesti; tulostuksen muotoilu on eri asia kuin laskenta.

Laskutoimitukset

+ ja - laskevat summan ja erotuksen, * tulon ja ** potenssin. Kokonaislukujen /-jako tuottaa float-arvon. // on lattiajako: se pyöristää osamäärän kohti miinusääretöntä, ei aina kohti nollaa. Jos mukana on float, myös lattiajaon tulos voi olla float.

print(5 + 3, 5 - 3, 5 * 3)
print(4 / 2)
print(5 // 3, -5 // 3)
print(5 % 3, -5 % 3)
print(2 ** 3)

Tulostus (ilman syötteiden kysymystekstejä):

8 2 15
2.0
1 -2
2 1
8

Muunnokset

int muuntaa kokonaislukutekstin luvuksi. Liukuluvun int-muunnos katkaisee murto-osan kohti nollaa. float lukee myös desimaalipisteen sisältävän tekstin. str muodostaa tekstiesityksen. Kaikki tekstiarvot eivät ole kelvollisia lukuja.

print(int("12"))
print(int(-3.9))
print(float("3.5"))
print("Luku: " + str(12))

Tulostus (ilman syötteiden kysymystekstejä):

12
-3
3.5
Luku: 12

Liukuluvun tarkkuus

Esimerkiksi 0.1 ei ole tarkka äärellinen binäärimurtoluku. Älä vaadi laskettujen liukulukujen tarkkaa yhtäsuuruutta ilman harkintaa. round pyöristää arvon; :.2f määrää tulostettavien desimaalien määrän. Tasatilanteessa round käyttää lähintä parillista tulosta, mutta binääriesitys voi vaikuttaa siihen, onko arvo todella tasan puolivälissä.

print(0.1 + 0.2 == 0.3)
print(f"{0.1 + 0.2:.2f}")
print(round(2.5), round(3.5))

Tulostus (ilman syötteiden kysymystekstejä):

False
0.30
2 4

Lisätieto: kompleksiluvut

Kompleksiluvussa j merkitsee imaginääriyksikköä. .real ja .imag ovat reaalisia osia float-arvoina. Tätä ei tarvitse hallita peruskurssin ensimmäisiin tehtäviin.

z = 3 + 4j
print(z.real, z.imag)

Tulostus (ilman syötteiden kysymystekstejä):

3.0 4.0

Kokeile itse

Mitä -7 // 2 tuottaa ja miten se eroaa int(-7 / 2):sta?

Vastaus ja perustelu

Lattiajako tuottaa -4. int-muunnos katkaisee kohti nollaa ja tuottaa -3.

Suorita koodiesimerkit yksi kerrallaan. Jokainen esimerkki sisältää tarvitsemansa määrittelyt. Vertaa omaa ennustettasi tulosteeseen ennen seuraavaan aiheeseen siirtymistä.

Katso aihevideo YouTubessa