and, or, not în Python

Operatori Python 3.0+

Operatorii logici: „și”, „sau” și negația.

Sintaxă
a and b
a or b
not a

Ce face and, or, not

a and b este adevărat doar dacă ambele sunt adevărate. a or b este adevărat dacă cel puțin una este adevărată. not a inversează valoarea logică.

and și or se opresc imediat ce cunosc rezultatul (evaluare scurtcircuitată) și returnează una dintre valorile primite, nu neapărat True/False. De aceea nume or "Anonim" dă o valoare implicită când nume este gol.

Prioritatea este not, apoi and, apoi or. Pune paranteze când combini mai mulți operatori, ca să fie clar.

Exemple

Exemplul 1: Condiții combinate

varsta = 22
student = True
print(varsta >= 18 and student)
print(varsta < 18 or student)
print(not student)

Rezultat

True
True
False

Exemplul 2: Valoare implicită cu or

for nume in ["Ana", ""]:
    afisat = nume or "Anonim"
    print(afisat)
print(0 or [] or "ultima valoare")
print(3 and 5)

Rezultat

Ana
Anonim
ultima valoare
5

Exemplul 3: Scurtcircuitare

Dacă lista este goală, and se oprește înainte de lista[0], așa că nu apare IndexError.

lista = []
if lista and lista[0] > 10:
    print("Primul element e mare")
else:
    print("Lista e goală sau primul element e mic")

Rezultat

Lista e goală sau primul element e mic

Greșeli frecvente

  • Scrii &&, || sau ! ca în alte limbaje. În Python se scrie cu cuvinte: and, or, not.
  • Scrii if culoare == "roșu" or "verde":. Condiția este mereu adevărată, pentru că "verde" singur este adevărat. Corect: culoare in ("roșu", "verde").

Comenzi înrudite

  • if / elif / else: Execută un bloc de cod doar dacă o condiție este adevărată.
  • bool(), True și False: Tipul logic, cu valorile True și False; bool() spune dacă o valoare este considerată adevărată.
  • in / not in: Verifică dacă o valoare se află într-o listă, text, dicționar sau mulțime.
  • all() și any(): all() verifică dacă toate elementele sunt adevărate; any() verifică dacă cel puțin unul este.