Operadores de Comparação e Lógicos em Python
Em Python, várias operações são classificadas como expressões condicionais. Essas operações utilizam dois operandos e retornam um valor lógico, representado pelo tipo bool
. Existem apenas dois valores lógicos em Python: True
(verdadeiro) e False
(falso).
Operadores de Comparação
As expressões condicionais mais simples são operações de comparação, que comparam dois valores. Python oferece os seguintes operadores de comparação:
==
: RetornaTrue
se ambos os operandos forem iguais. Caso contrário, retornaFalse
.!=
: RetornaTrue
se ambos os operandos forem diferentes. Caso contrário, retornaFalse
.>
(maior que): RetornaTrue
se o primeiro operando for maior que o segundo.<
(menor que): RetornaTrue
se o primeiro operando for menor que o segundo.>=
(maior ou igual): RetornaTrue
se o primeiro operando for maior ou igual ao segundo.<=
(menor ou igual): RetornaTrue
se o primeiro operando for menor ou igual ao segundo.
Exemplos de operações de comparação:
a = 5
b = 6
result = 5 == 6 # O resultado da operação é armazenado na variável
print(result) # False - 5 não é igual a 6
print(a != b) # True
print(a > b) # False - 5 é menor que 6
print(a < b) # True
bool1 = True
bool2 = False
print(bool1 == bool2) # False - bool1 não é igual a bool2
Os operadores de comparação podem ser usados com diferentes tipos de objetos, como strings, números e valores booleanos. No entanto, ambos os operandos devem ser do mesmo tipo.
Operadores Lógicos
Para criar expressões condicionais mais complexas, utilizam-se operadores lógicos. Python oferece os seguintes operadores lógicos:
and
(conjunção lógica): Aplica-se a dois operandosx and y
.Primeiramente, o operador
and
avalia o operandox
. Sex
forFalse
, ele retorna o valor dex
. Sex
forTrue
, ele avalia o segundo operando,y
, e retorna o valor dey
.age = 22 weight = 58 result = age > 21 and weight == 58 print(result) # True
Nesse exemplo, o operador
and
compara os resultados de duas expressões:age > 21
eweight == 58
. Se ambas retornaremTrue
, o operador and também retornaTrue
.Os operandos do operador
and
não precisam ser valores booleanos. Qualquer valor pode ser usado. Por exemplo:result = 4 and "w" print(result) # "w", pois 4 é considerado como True, então retorna o último operando result = 0 and "w" print(result) # 0, pois 0 é equivalente a False
Neste caso, o número
0
e a string vazia""
são considerados comoFalse
, enquanto todos os outros números e strings não vazias são equivalentes aTrue
.or
(disjunção lógica): Aplica-se a dois operandosx or y
.O operador or avalia primeiro o operando
x
. Sex
forTrue
, ele retorna o valor dex
. Caso contrário, ele avalia o segundo operando,y
, e retorna o valor dey
. Por exemplo:age = 22 isMarried = False result = age > 21 or isMarried print(result) # True, pois a expressão age > 21 é True
Assim como o
and
, o operadoror
pode ser aplicado a qualquer valor:result = 4 or "w" print(result) # 4, pois 4 é equivalente a True, então retorna o primeiro operando result = 0 or "w" print(result) # "w", pois 0 é equivalente a False, então retorna o último operando
not
(negação lógica): Inverte o valor lógico de uma expressão.age = 22 isMarried = False print(not age > 21) # False print(not isMarried) # True print(not 4) # False print(not 0) # True
Operador in
O operador in
retorna True
se um valor específico estiver presente em uma sequência de valores. Sua forma geral é:
valor in conjunto_de_valores
Por exemplo, uma string é uma sequência de caracteres. Com o operador in
, podemos verificar se uma substring está presente em uma string:
message = "hello world!"
word = "hello"
print(word in message) # True - a substring "hello" está presente em "hello world!"
Se quisermos verificar se um valor não está presente em um conjunto, utilizamos a modificação not in
, que retorna True
se o valor não estiver presente no conjunto:
message = "hello world!"
gold = "gold"
print(gold not in message) # True - a substring "gold" não está presente em "hello world!"