Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Vertailuoperaattorit | Boolen-Arvot ja Vertailut
Tietotyypit Pythonissa

bookVertailuoperaattorit

Vertailut mahdollistavat ohjelman esittää kyllä/ei-kysymyksiä arvoista:

  • Ovatko nämä samat?
  • Onko tämä suurempi?
  • Sijoittuuko tämä luku tietylle välille?

Vertailu palauttaa Boolean-arvon (True tai False) ja muodostaa if/while-logiikan perustan.

Perusteet

Python tarjoaa kuusi vertailuoperaattoria (==, !=, <, <=, >, >=) arvojen yhtäsuuruuden ja järjestyksen testaamiseen; jokainen vertailu palauttaa arvon True tai False.

Yhtäsuuruus — ==

Tarkistaa, ovatko kaksi arvoa samat.

12
print(5 == 5) # True print("apple" == "Apple") # False (case matters)
copy
Note
Huomio

= asettaa arvon muuttujalle, kun taas == vertaa kahta arvoa.

Eriarvoisuus — !=

Tarkistaa, ovatko kaksi arvoa erilaisia.

12
print(5 != 3) # True print("cat" != "cat") # False
copy

Suurempi kuin — >

Tosi, jos vasemmanpuoleinen arvo on ehdottomasti suurempi kuin oikeanpuoleinen.

12
print(7 > 9) # False print(12 > 3) # True
copy

Vähemmän kuin — <

Tosi, jos vasemmanpuoleinen arvo on tiukasti pienempi kuin oikeanpuoleinen.

12
print(2 < 10) # True print("a" < "b") # True (lexicographic order)
copy

Suurempi tai yhtä suuri kuin — >=

Tosi, jos vasemmanpuoleinen arvo on suurempi tai yhtä suuri kuin oikeanpuoleinen.

12
print(7 >= 7) # True print(4 >= 9) # False
copy

Vähemmän kuin tai yhtä suuri — <=

Tosi, jos vasemmanpuoleinen arvo on pienempi tai yhtä suuri kuin oikeanpuoleinen.

12
print(10 <= 9) # False print(5 <= 5) # True
copy

Ketjutetut vertailut

Pythonissa alueiden määrittely onnistuu luonnollisesti: 0 < x < 10 tarkoittaa "x on suurempi kuin 0 ja pienempi kuin 10". Taustalla tämä toimii kuten (0 < x) and (x < 10).

123
x = 7 print(0 < x < 10) # True print(5 <= x <= 7) # True
copy

Tämä on selkeälukuista ja välttää x:n toistamisen.

Liukuluvun vivahteet (pienet pyöristysvirheet)

Joitakin desimaaleja (kuten 0.1) ei voida esittää tarkasti binaarimuodossa. Tämän vuoksi liukulukujen tiukka yhtäsuuruusvertailu voi johtaa yllättäviin tuloksiin.

1
print(0.1 + 0.2 == 0.3) # False in many environments
copy

Liukulukujen vertailussa "yhtäsuuruuden" sijaan suositellaan toleranssitarkistusta.

12
import math print(math.isclose(0.1 + 0.2, 0.3, rel_tol=1e-9)) # True
copy

Tässä ei sanota "täsmälleen yhtä suuri", vaan "riittävän lähellä".

Merkkijonojen vertailu (kirjainkoko ja järjestys)

Merkkijonojen vertailu on kirjainkokoherkkää ja leksikografista (merkki kerrallaan Unicode-järjestyksessä).

12
print("apple" == "Apple") # False (case matters) print("apple" < "banana") # True ("a" comes before "b")
copy

Tapaustenvastaisissa tarkistuksissa normalisoi molemmat osapuolet ensin.

12
s1, s2 = "Hello", "heLLo" print(s1.lower() == s2.lower()) # True
copy

1. Täydennä tyhjät kohdat True tai False:

2. Mikä yksittäinen lauseke tarkistaa oikein, että x on 1:n ja 5:n välillä (mukaan lukien) (käyttäen ketjutusta)?

3. Mikä merkkijonojen vertailu on True?

question-icon

Täydennä tyhjät kohdat True tai False:

5 == 5
3 < 2

9 >= 9

"A" == "a"

0 < 7 <= 7

Click or drag`n`drop items and fill in the blanks

question mark

Mikä yksittäinen lauseke tarkistaa oikein, että x on 1:n ja 5:n välillä (mukaan lukien) (käyttäen ketjutusta)?

Select the correct answer

question mark

Mikä merkkijonojen vertailu on True?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 2

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

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

Suggested prompts:

Can you explain more about how chained comparisons work in Python?

What are some common pitfalls when comparing floating-point numbers?

How do I perform a case-insensitive string comparison in Python?

Awesome!

Completion rate improved to 5

bookVertailuoperaattorit

Pyyhkäise näyttääksesi valikon

Vertailut mahdollistavat ohjelman esittää kyllä/ei-kysymyksiä arvoista:

  • Ovatko nämä samat?
  • Onko tämä suurempi?
  • Sijoittuuko tämä luku tietylle välille?

Vertailu palauttaa Boolean-arvon (True tai False) ja muodostaa if/while-logiikan perustan.

Perusteet

Python tarjoaa kuusi vertailuoperaattoria (==, !=, <, <=, >, >=) arvojen yhtäsuuruuden ja järjestyksen testaamiseen; jokainen vertailu palauttaa arvon True tai False.

Yhtäsuuruus — ==

Tarkistaa, ovatko kaksi arvoa samat.

12
print(5 == 5) # True print("apple" == "Apple") # False (case matters)
copy
Note
Huomio

= asettaa arvon muuttujalle, kun taas == vertaa kahta arvoa.

Eriarvoisuus — !=

Tarkistaa, ovatko kaksi arvoa erilaisia.

12
print(5 != 3) # True print("cat" != "cat") # False
copy

Suurempi kuin — >

Tosi, jos vasemmanpuoleinen arvo on ehdottomasti suurempi kuin oikeanpuoleinen.

12
print(7 > 9) # False print(12 > 3) # True
copy

Vähemmän kuin — <

Tosi, jos vasemmanpuoleinen arvo on tiukasti pienempi kuin oikeanpuoleinen.

12
print(2 < 10) # True print("a" < "b") # True (lexicographic order)
copy

Suurempi tai yhtä suuri kuin — >=

Tosi, jos vasemmanpuoleinen arvo on suurempi tai yhtä suuri kuin oikeanpuoleinen.

12
print(7 >= 7) # True print(4 >= 9) # False
copy

Vähemmän kuin tai yhtä suuri — <=

Tosi, jos vasemmanpuoleinen arvo on pienempi tai yhtä suuri kuin oikeanpuoleinen.

12
print(10 <= 9) # False print(5 <= 5) # True
copy

Ketjutetut vertailut

Pythonissa alueiden määrittely onnistuu luonnollisesti: 0 < x < 10 tarkoittaa "x on suurempi kuin 0 ja pienempi kuin 10". Taustalla tämä toimii kuten (0 < x) and (x < 10).

123
x = 7 print(0 < x < 10) # True print(5 <= x <= 7) # True
copy

Tämä on selkeälukuista ja välttää x:n toistamisen.

Liukuluvun vivahteet (pienet pyöristysvirheet)

Joitakin desimaaleja (kuten 0.1) ei voida esittää tarkasti binaarimuodossa. Tämän vuoksi liukulukujen tiukka yhtäsuuruusvertailu voi johtaa yllättäviin tuloksiin.

1
print(0.1 + 0.2 == 0.3) # False in many environments
copy

Liukulukujen vertailussa "yhtäsuuruuden" sijaan suositellaan toleranssitarkistusta.

12
import math print(math.isclose(0.1 + 0.2, 0.3, rel_tol=1e-9)) # True
copy

Tässä ei sanota "täsmälleen yhtä suuri", vaan "riittävän lähellä".

Merkkijonojen vertailu (kirjainkoko ja järjestys)

Merkkijonojen vertailu on kirjainkokoherkkää ja leksikografista (merkki kerrallaan Unicode-järjestyksessä).

12
print("apple" == "Apple") # False (case matters) print("apple" < "banana") # True ("a" comes before "b")
copy

Tapaustenvastaisissa tarkistuksissa normalisoi molemmat osapuolet ensin.

12
s1, s2 = "Hello", "heLLo" print(s1.lower() == s2.lower()) # True
copy

1. Täydennä tyhjät kohdat True tai False:

2. Mikä yksittäinen lauseke tarkistaa oikein, että x on 1:n ja 5:n välillä (mukaan lukien) (käyttäen ketjutusta)?

3. Mikä merkkijonojen vertailu on True?

question-icon

Täydennä tyhjät kohdat True tai False:

5 == 5
3 < 2

9 >= 9

"A" == "a"

0 < 7 <= 7

Click or drag`n`drop items and fill in the blanks

question mark

Mikä yksittäinen lauseke tarkistaa oikein, että x on 1:n ja 5:n välillä (mukaan lukien) (käyttäen ketjutusta)?

Select the correct answer

question mark

Mikä merkkijonojen vertailu on True?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 2
some-alt