Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Edistynyt Aritmetiikka | Luvut
Tietotyypit Pythonissa

Edistynyt Aritmetiikka

Pyyhkäise näyttääksesi valikon

Opitaan, miten Python käsittelee lattiajakolaskua ja jäännösosaa (myös negatiivisilla luvuilla) sekä tutustutaan math-moduuliin yleisissä numeerisissa operaatioissa.

Lattiajakolasku (//)

Palauttaa tarkan osamäärän lattian, eli pyöristää tuloksen alaspäin (ei vain kohti nollaa).

Huomio: Negatiivisilla luvuilla tulos voi olla pienempi kuin odotat, jos olet tottunut pelkkään katkaisuun. Esimerkiksi -7 // 3 antaa -3 (koska -2.333... pyöristyy alaspäin -3:een, ei kohti nollaa).

12
print(7 // 3) # 2 print(-7 // 3) # -3 (floors down: -2.333... → -3)

Merkitys: indeksointi lohkoihin/sivuihin, ajan jakaminen (tunnit sekunneista) ja kaikki laskelmat, joissa selvitetään "kuinka monta kokonaista ryhmää mahtuu".

Modulo %

Palauttaa jakolaskun jäännöksen. Pythonissa jäännöksellä on aina sama etumerkki kuin jakajalla.

123
print(7 % 3) # 1 print(-7 % 3) # 2 print(7 % -3) # -2

Miksi tämä on tärkeää: "joka N:s" alkio, ympäri kiertäminen (esim. kellon aritmetiikka), jakaminen ryhmiin.

Esimerkkejä:

  • Kellon tuntien seuraaminen14 % 12 = 2 - (klo 14 tarkoittaa 2 PM);
  • Joka 3. alkion valitseminen listasta → if i % 3 == 0:.

Huomio pyöristyksestä

Sisäänrakennettu round(x, ndigits) käyttää "pyöristys lähimpään parilliseen" -periaatetta.

12
print(round(2.5), round(3.5)) # 2 4 print(round(2.675, 2)) # 2.67 (binary float nuance)

math-moduuli

Kertatuonti ja useiden hyödyllisten funktioiden/vakioiden käyttö.

123456
import math print(math.floor(2.9), math.ceil(2.1), math.trunc(-2.9)) # 2 3 -2 print(math.sqrt(9)) # 3.0 print(math.pi, math.e) # 3.14159... 2.71828... print(math.isfinite(1.0), math.isfinite(float('inf'))) # True False

1. Minkä arvon tämä koodi tulostaa?

2. Minkä arvon tämä koodi tulostaa?

3. Mikä kutsu palauttaa arvon -3?

question mark

Minkä arvon tämä koodi tulostaa?

Valitse oikea vastaus

question mark

Minkä arvon tämä koodi tulostaa?

Valitse oikea vastaus

question mark

Mikä kutsu palauttaa arvon -3?

Valitse oikea vastaus

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 3

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Edistynyt Aritmetiikka

Opitaan, miten Python käsittelee lattiajakolaskua ja jäännösosaa (myös negatiivisilla luvuilla) sekä tutustutaan math-moduuliin yleisissä numeerisissa operaatioissa.

Lattiajakolasku (//)

Palauttaa tarkan osamäärän lattian, eli pyöristää tuloksen alaspäin (ei vain kohti nollaa).

Huomio: Negatiivisilla luvuilla tulos voi olla pienempi kuin odotat, jos olet tottunut pelkkään katkaisuun. Esimerkiksi -7 // 3 antaa -3 (koska -2.333... pyöristyy alaspäin -3:een, ei kohti nollaa).

12
print(7 // 3) # 2 print(-7 // 3) # -3 (floors down: -2.333... → -3)

Merkitys: indeksointi lohkoihin/sivuihin, ajan jakaminen (tunnit sekunneista) ja kaikki laskelmat, joissa selvitetään "kuinka monta kokonaista ryhmää mahtuu".

Modulo %

Palauttaa jakolaskun jäännöksen. Pythonissa jäännöksellä on aina sama etumerkki kuin jakajalla.

123
print(7 % 3) # 1 print(-7 % 3) # 2 print(7 % -3) # -2

Miksi tämä on tärkeää: "joka N:s" alkio, ympäri kiertäminen (esim. kellon aritmetiikka), jakaminen ryhmiin.

Esimerkkejä:

  • Kellon tuntien seuraaminen14 % 12 = 2 - (klo 14 tarkoittaa 2 PM);
  • Joka 3. alkion valitseminen listasta → if i % 3 == 0:.

Huomio pyöristyksestä

Sisäänrakennettu round(x, ndigits) käyttää "pyöristys lähimpään parilliseen" -periaatetta.

12
print(round(2.5), round(3.5)) # 2 4 print(round(2.675, 2)) # 2.67 (binary float nuance)

math-moduuli

Kertatuonti ja useiden hyödyllisten funktioiden/vakioiden käyttö.

123456
import math print(math.floor(2.9), math.ceil(2.1), math.trunc(-2.9)) # 2 3 -2 print(math.sqrt(9)) # 3.0 print(math.pi, math.e) # 3.14159... 2.71828... print(math.isfinite(1.0), math.isfinite(float('inf'))) # True False
Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 3
some-alt