Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Jämförelseoperatorer | Booleska Värden och Jämförelser
Datatyper i Python

bookJämförelseoperatorer

Jämförelser gör det möjligt för ditt program att ställa ja/nej-frågor om värden:

  • Är dessa lika?
  • Är detta större?
  • Ligger detta tal inom ett intervall?

En jämförelse returnerar ett booleskt värde (True eller False) och utgör grunden för if/while-logik.

Det grundläggande

Python tillhandahåller sex jämförelseoperatorer (==, !=, <, <=, >, >=) för att testa likhet och ordning mellan värden; varje jämförelse utvärderas till True eller False.

Likhet — ==

Kontrollerar om två värden är lika.

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

= tilldelar ett värde till en variabel, medan == jämför två värden.

Olikhet — !=

Kontrollerar om två värden är olika.

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

Större än — >

Sant om värdet till vänster är strikt större än värdet till höger.

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

Mindre än — <

Sant om värdet till vänster är strikt mindre än värdet till höger.

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

Större än eller lika med — >=

Sant om värdet till vänster är större eller lika med värdet till höger.

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

Mindre än eller lika med — <=

Sant om värdet till vänster är mindre eller lika med värdet till höger.

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

Kedjade jämförelser

Python möjliggör naturlig skrivning av intervall: 0 < x < 10 betyder "x är större än 0 och mindre än 10". I bakgrunden fungerar det som (0 < x) and (x < 10).

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

Detta är lättläst och undviker upprepning av x.

Flyttalsnyans (små avrundningsfel)

Vissa decimaltal (som 0.1) kan inte representeras exakt i binärt format. Därför kan strikt likhet på flyttal ge oväntade resultat.

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

Vid jämförelse av flyttal för "likhet", föredra en toleranskontroll.

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

Du anger inte "exakt lika", utan "tillräckligt nära".

Jämföra strängar (skiftläge och ordning)

Strängjämförelser är skiftlägeskänsliga och lexikografiska (tecken för tecken i Unicode-ordning).

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

För skiftlägesokänsliga jämförelser, normalisera båda sidor först.

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

1. Fyll i luckorna med True eller False:

2. Vilket enda uttryck kontrollerar korrekt att x är mellan 1 och 5 inklusive (med kedjning)?

3. Vilken strängjämförelse är True?

question-icon

Fyll i luckorna med True eller 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

Vilket enda uttryck kontrollerar korrekt att x är mellan 1 och 5 inklusive (med kedjning)?

Select the correct answer

question mark

Vilken strängjämförelse är True?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 2

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

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

bookJämförelseoperatorer

Svep för att visa menyn

Jämförelser gör det möjligt för ditt program att ställa ja/nej-frågor om värden:

  • Är dessa lika?
  • Är detta större?
  • Ligger detta tal inom ett intervall?

En jämförelse returnerar ett booleskt värde (True eller False) och utgör grunden för if/while-logik.

Det grundläggande

Python tillhandahåller sex jämförelseoperatorer (==, !=, <, <=, >, >=) för att testa likhet och ordning mellan värden; varje jämförelse utvärderas till True eller False.

Likhet — ==

Kontrollerar om två värden är lika.

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

= tilldelar ett värde till en variabel, medan == jämför två värden.

Olikhet — !=

Kontrollerar om två värden är olika.

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

Större än — >

Sant om värdet till vänster är strikt större än värdet till höger.

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

Mindre än — <

Sant om värdet till vänster är strikt mindre än värdet till höger.

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

Större än eller lika med — >=

Sant om värdet till vänster är större eller lika med värdet till höger.

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

Mindre än eller lika med — <=

Sant om värdet till vänster är mindre eller lika med värdet till höger.

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

Kedjade jämförelser

Python möjliggör naturlig skrivning av intervall: 0 < x < 10 betyder "x är större än 0 och mindre än 10". I bakgrunden fungerar det som (0 < x) and (x < 10).

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

Detta är lättläst och undviker upprepning av x.

Flyttalsnyans (små avrundningsfel)

Vissa decimaltal (som 0.1) kan inte representeras exakt i binärt format. Därför kan strikt likhet på flyttal ge oväntade resultat.

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

Vid jämförelse av flyttal för "likhet", föredra en toleranskontroll.

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

Du anger inte "exakt lika", utan "tillräckligt nära".

Jämföra strängar (skiftläge och ordning)

Strängjämförelser är skiftlägeskänsliga och lexikografiska (tecken för tecken i Unicode-ordning).

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

För skiftlägesokänsliga jämförelser, normalisera båda sidor först.

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

1. Fyll i luckorna med True eller False:

2. Vilket enda uttryck kontrollerar korrekt att x är mellan 1 och 5 inklusive (med kedjning)?

3. Vilken strängjämförelse är True?

question-icon

Fyll i luckorna med True eller 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

Vilket enda uttryck kontrollerar korrekt att x är mellan 1 och 5 inklusive (med kedjning)?

Select the correct answer

question mark

Vilken strängjämförelse är True?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 2
some-alt