Expresii condiționale
O serie de operațiuni reprezintă expresii condiționale. Toate aceste operațiuni iau doi operanzi și returnează o valoare logică, care în Python este de tipul bool. Există doar două valori logice - True (expresia este adevărată) și False (expresia este falsă).
Operațiuni de comparație
Cele mai simple expresii condiționale sunt operațiunile de comparație, care compară două valori. Python suportă următoarele operațiuni de comparație:
- == Returnează True dacă ambii operanzi sunt egali. În caz contrar, returnează False.
- != Returnează True dacă ambii operanzi NU sunt egali. În caz contrar, returnează False.
- > (mai mare decât) Returnează True dacă primul operand este mai mare decât al doilea.
- < (mai mic decât)Returnează True dacă primul operand este mai mic decât al doilea.
- >= (mai mare sau egal) Returnează True dacă primul operand este mai mare sau egal cu al doilea.
- <= (mai mic sau egal) Returnează True dacă primul operand este mai mic sau egal cu al doilea.
Exemple de operațiuni de comparație:
a = 5
b = 6
result = 5 == 6 # salvăm rezultatul operațiunii într-o variabilă
print(result) # False - 5 nu este egal cu 6
print(a != b) # True
print(a > b) # False - 5 este mai mic decât 6
print(a < b) # True
bool1 = True
bool2 = False
print(bool1 == bool2) # False - bool1 nu este egal cu bool2
Operațiunile de comparație pot compara diferite obiecte - șiruri de caractere, numere, valori logice, însă ambii operanzi ai operațiunii trebuie să fie de același tip.
Operațiuni logice
Pentru a crea expresii condiționale compuse se folosesc operațiuni logice. În Python există următorii operatori logici:
Operatorul and (și logic) se aplică la doi operanzi:
x and y
Mai întâi, operatorul and evaluează expresia x, iar dacă aceasta este False, atunci returnează valoarea ei. Dacă este True, se evaluează al doilea operand y și se returnează valoarea lui.
age = 22
weight = 58
result = age > 21 and weight == 58
print(result) # True
În acest caz, operatorul and compară rezultatele a două expresii: age > 21 și weight == 58. Și dacă ambele expresii returnează True, operatorul and returnează de asemenea True (formal se returnează valoarea ultimului operand). Dar operanzii operatorului and nu trebuie neapărat să fie valori True și False. Pot fi orice valori. De exemplu:
result = 4 and "w"
print(result) # w, deoarece 4 este echivalent cu True, așa că se returnează valoarea ultimului operand
result = 0 and "w"
print(result) # 0, deoarece 0 este echivalent cu False
În acest caz, numărul 0 și șirul gol "" sunt considerate False, toate celelalte numere și șiruri negoale sunt echivalente cu True.
- Operatorul or (sau logic) se aplică la doi operanzi:
x or y
Mai întâi, operatorul or evaluează expresia x, iar dacă aceasta este True, atunci returnează valoarea ei. Dacă este False, se evaluează al doilea operand y și se returnează valoarea lui. De exemplu:
age = 22
isMarried = False
result = age > 21 or isMarried
print(result) # True, deoarece expresia age > 21 este True
Și de asemenea operatorul or poate fi aplicat la orice valori. De exemplu:
result = 4 or "w"
print(result) # 4, deoarece 4 este echivalent cu True, așa că se returnează valoarea primului operand
result = 0 or "w"
print(result) # w, deoarece 0 este echivalent cu False, așa că se returnează valoarea ultimului operand
- Operatorul not (negare logică) Returnează True dacă expresia este False.
age = 22
isMarried = False
print(not age > 21) # False
print(not isMarried) # True
print(not 4) # False
print(not 0) # True
- Operatorul in
Operatorul in returnează True dacă un anumit set de valori conține o valoare specifică. Are următoarea formă:
valoare in set_de_valori
De exemplu, un șir de caractere reprezintă un set de caractere. Și cu ajutorul operatorului in putem verifica dacă acesta conține un anumit subșir:
message = "hello world!"
hello = "hello"
print(hello in message) # True - subșirul "hello" există în șirul "hello world!"
gold = "gold"
print(gold in message) # False - subșirul "gold" nu există în șirul "hello world!"
Dacă dorim să verificăm contrariul, dacă un set de valori NU conține o valoare specifică, putem folosi modificarea operatorului - not in. Aceasta returnează True dacă setul de valori NU conține valoarea specifică:
message = "hello world!"
hello = "hello"
print(hello not in message) # False
gold = "gold"
print(gold not in message) # True