Vertailuoperaattorit
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.
12print(5 == 5) # True print("apple" == "Apple") # False (case matters)
= asettaa arvon muuttujalle, kun taas == vertaa kahta arvoa.
Eriarvoisuus — !=
Tarkistaa, ovatko kaksi arvoa erilaisia.
12print(5 != 3) # True print("cat" != "cat") # False
Suurempi kuin — >
Tosi, jos vasemmanpuoleinen arvo on ehdottomasti suurempi kuin oikeanpuoleinen.
12print(7 > 9) # False print(12 > 3) # True
Vähemmän kuin — <
Tosi, jos vasemmanpuoleinen arvo on tiukasti pienempi kuin oikeanpuoleinen.
12print(2 < 10) # True print("a" < "b") # True (lexicographic order)
Suurempi tai yhtä suuri kuin — >=
Tosi, jos vasemmanpuoleinen arvo on suurempi tai yhtä suuri kuin oikeanpuoleinen.
12print(7 >= 7) # True print(4 >= 9) # False
Vähemmän kuin tai yhtä suuri — <=
Tosi, jos vasemmanpuoleinen arvo on pienempi tai yhtä suuri kuin oikeanpuoleinen.
12print(10 <= 9) # False print(5 <= 5) # True
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).
123x = 7 print(0 < x < 10) # True print(5 <= x <= 7) # True
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.
1print(0.1 + 0.2 == 0.3) # False in many environments
Liukulukujen vertailussa "yhtäsuuruuden" sijaan suositellaan toleranssitarkistusta.
12import math print(math.isclose(0.1 + 0.2, 0.3, rel_tol=1e-9)) # True
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ä).
12print("apple" == "Apple") # False (case matters) print("apple" < "banana") # True ("a" comes before "b")
Tapaustenvastaisissa tarkistuksissa normalisoi molemmat osapuolet ensin.
12s1, s2 = "Hello", "heLLo" print(s1.lower() == s2.lower()) # True
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?
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
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
Vertailuoperaattorit
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.
12print(5 == 5) # True print("apple" == "Apple") # False (case matters)
= asettaa arvon muuttujalle, kun taas == vertaa kahta arvoa.
Eriarvoisuus — !=
Tarkistaa, ovatko kaksi arvoa erilaisia.
12print(5 != 3) # True print("cat" != "cat") # False
Suurempi kuin — >
Tosi, jos vasemmanpuoleinen arvo on ehdottomasti suurempi kuin oikeanpuoleinen.
12print(7 > 9) # False print(12 > 3) # True
Vähemmän kuin — <
Tosi, jos vasemmanpuoleinen arvo on tiukasti pienempi kuin oikeanpuoleinen.
12print(2 < 10) # True print("a" < "b") # True (lexicographic order)
Suurempi tai yhtä suuri kuin — >=
Tosi, jos vasemmanpuoleinen arvo on suurempi tai yhtä suuri kuin oikeanpuoleinen.
12print(7 >= 7) # True print(4 >= 9) # False
Vähemmän kuin tai yhtä suuri — <=
Tosi, jos vasemmanpuoleinen arvo on pienempi tai yhtä suuri kuin oikeanpuoleinen.
12print(10 <= 9) # False print(5 <= 5) # True
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).
123x = 7 print(0 < x < 10) # True print(5 <= x <= 7) # True
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.
1print(0.1 + 0.2 == 0.3) # False in many environments
Liukulukujen vertailussa "yhtäsuuruuden" sijaan suositellaan toleranssitarkistusta.
12import math print(math.isclose(0.1 + 0.2, 0.3, rel_tol=1e-9)) # True
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ä).
12print("apple" == "Apple") # False (case matters) print("apple" < "banana") # True ("a" comes before "b")
Tapaustenvastaisissa tarkistuksissa normalisoi molemmat osapuolet ensin.
12s1, s2 = "Hello", "heLLo" print(s1.lower() == s2.lower()) # True
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?
Kiitos palautteestasi!