Como fazer uma comparação no python

Em Python, assim como na maioria das linguagens de programaç�o, o programa deve ser capaz de tomar decis�es com base em valores e resultados gerados durante sua execuç�o, ou seja, deve ser capaz de decidir se determinada instruç�o deve ou n�o ser executada de acordo com uma condiç�o. Para atender a esse tipo de situaç�o, podemos utilizar instruç�es especiais denominadas estruturas condicionais.

Neste artigo, veremos como funciona e como utilizar a estrutura de controle condicional IF em Python.

  • if
  • Operadores de comparaç�o
  • if-elif-else

Estruturas de condiç�o com o IF

O IF � uma estrutura de condiç�o que permite avaliar uma express�o e, de acordo com seu resultado, executar uma determinada aç�o.

No C�digo 1 a seguir, temos um exemplo de uso do IF no qual verificamos se a vari�vel idade � menor que 20. Em caso positivo, imprimimos uma mensagem na tela, e em caso negativo, o c�digo seguir� normalmente, desconsiderando a linha 3.

idade = 18 if idade < 20: print('Voc� � jovem!')

C�digo 1. Uso do IF

Como podemos notar, essa estrutura � formada pela palavra reservada if, seguida por uma condiç�o e por dois pontos (:). As linhas abaixo dela formam o bloco de instruç�es que ser�o executadas se a condiç�o for atendida. Para isso, elas devem ser identadas corretamente, respeitando a especificaç�o do Python. Nesse c�digo, apenas a instruç�o da linha 3 � executada, e por isso ela est� mais avançada. Se fosse necess�ria a execuç�o de outras linhas no caso da idade ser menor que 20, elas tamb�m deveriam estar no mesmo n�vel de identaç�o da linha 3.

Operadores de comparaç�o

Um assunto diretamente relacionado �s estruturas de condiç�o e repetiç�o s�o os operadores de comparaç�o. Como o nome sugere, eles s�o usados para avaliar o valor de duas ou mais express�es/vari�veis e compar�-las. Na linha 2 do c�digo que vimos anteriormente, por exemplo, comparamos a vari�vel idade com o valor 20, por meio do operador menor que (<).

Na Tabela 1 podemos ver todos os operadores de comparaç�o da linguagem Python e seu significado/aplicaç�o.

S�mbolo Definiç�o
== Igual
!= Diferente
> Maior que
< Menor que
>= Maior ou igual que
<= Menor ou igual que

Tabela 1. Operadores de comparaç�o em Python

� importante observar que o operador de comparaç�o de igualdade � formado por dois sinais de igual (==), enquanto um �nico sinal corresponde ao operador de atribuiç�o.

Estrutura de condiç�o IF-ELIF-ELSE

Vimos anteriormente como utilizar o IF para executar uma aç�o caso uma condiç�o seja atendida. No entanto, nenhum comportamento espec�fico foi definido para o caso de a condiç�o n�o ser satisfeita. Quando isso � necess�rio, precisamos utilizar a palavra reservada else. Adicionalmente, se existir mais de uma condiç�o alternativa que precisa ser verificada, devemos utilizar o elif para avaliar as express�es intermedi�rias antes de usar o else.

O C�digo 2 apresenta uma demonstraç�o dessas instruç�es.

idade = int(input('Digite sua idade: ')) if idade >= 10 and idade < 20: print('Voc� � adolescente') elif idade >= 20 and idade < 30: print('Voc� � jovem') elif idade >= 30 and idade <= 100: print('Voc� � adulto') else: print('Valor n�o encontrado!')

C�digo 2. Estrutura condicional completa com if-elif-else

Na linha 2, verificamos se o valor informado est� dentro de uma faixa de valores espec�fica. Caso a condiç�o seja satisfeita, o programa executar� a linha 3. Por outro lado, caso o resultado n�o seja o esperado, ent�o o programa verificar� o pr�ximo condicional, na linha 4 e, caso ele seja verdadeiro, a linha 5 ser� executada. O mesmo ocorre para a verificaç�o da linha 6. Por fim, se nenhuma das condiç�es foi satisfeita, o programa executar� o que � especificado no bloco else.

Estruturas de controle condicionais est�o presentes na maioria das linguagens de programaç�o e representam uma parte fundamental de cada uma delas. Sendo assim, � muito importante conhecer a sintaxe e o funcionamento dessas estruturas.

Confira tamb�m

Como fazer uma comparação no python
Como fazer uma comparação no python
Como fazer uma comparação no python

Programação em Python
Prof. Márcio Sarroglia Pinho

Comandos de Decisão / Comandos de Seleção

Condições - Expressões Relacionais

Uma condição na linguagem Python é definida como uma expressão que pode ser verdadeira ou falsa.

A este tipo de expressão dá-se o nome de expressão relacional ou comparação.

Por exemplo,  3 > 2 uma expressão relacional que possui valor verdadeiro. Por outro lado, 4 < 1 é uma expressão  que possui valor falso.

Os operadores (< e >) usados nos exemplos acima são chamados de operadores relacionais pois possibilitam saber qual a relação existente entre seus dois operandos. Além destes dois existem mais 4 operadores relacionais, que podem ser vistos na tabela seguir:

Tabela - Operadores Relacionais

==Igual a
!=Diferente
>=Maior ou igual
>Maior que
<Menor que
<=Maior ou igual

Acesse a página a seguir para testar o uso de operadores relacionais: https://learnpython.trinket.io/learn-python-part-2-logic-expressions#/booleans/booleans

Experimente digitar um progrma como este

x = 10 y = 12

print('x > y  é ',x>y)

Como 12 é maior do que 10, então a expressão x>y é falsa, o que resulta em False, em Python.

Condições - Expressões Lógicas

Além dos operadores relacionais, existem os chamados operadores lógicos ou "conectivos lógicos". Estes, servem para conectar/combinar duas expressões relacionais. Os operadores lógicos da linguagem Python são apresentados na tabela a seguir:

Operadores Lógicos

orOU lógico
andE lógico
notNegação

Quando aplicados a valores lógicos True e False, este operadores produzem os resultados apresentados nas tabelas apresentadas a seguir

Tabela verdade para operadores AND e OR

A
B
and
True
True True
True False False
False
True False
False False False


Tabela verdade para operador NOT

 A

not


True False
False True

Os operadores or e and devem ser sempre usados entre duas expressões relacionais como por exemplo:

(2 > 1) or (3 < 7)  : resultado VERDADEIRO
(3 < 2) and (2 == 2) : resultado FALSO

Já o operador not deve ser usado antes de uma expressão relacional, para inverter seu valor, como por exemplo:

not (2 > 1): resultado VERDADEIRO not (1 < 0): resultado FALSO

not (5 !=0) and (1 < 2)  : resultado FALSO

Acesse a página a seguir para testar o uso de operadores relacionais:
https://learnpython.trinket.io/learn-python-part-2-logic-expressions#/booleans/combining-boolean-expressions

Precedência de Operadores

A execução as expressões em Python segue a seguinte tabela de precedência.

Tabela de precedência em Python

-


menos unário (sinal de número negativo)Executado
Antes
* /
Operadores Multiplicativos  
+ - Operadores aditivos  
< > <= >= == != Relacionais  
not
Operador de negação

and


e lógico Executado
Depois

or


ou lógico

Comando de Seleção IF

O comando if serve para selecionar que parte de um código será executado.

Por exemplo, o programa a seguir informa que um aluno está aprovado por média, se a nota dele for maior ou igual a 7.0.

Teste o programa com valores diversos entre 0 e 10, e veja o resultado.

a = input("Digite sua nota: ") nota = float (a)

if nota >=7.0:

    print ("Você está aprovado por média.")

if nota < 7.0:

    print ("Você não está aprovado por média.")

Note que o comando que está na linha imediatamente após cada IF foi adicionadoum TAB, o que é obrigatório em Python. Caso isto não seja feito, um erro será gerado. Veja no exemplo a seguir.

a = input("Digite sua nota: ")
nota = float (a)

if nota >=7.0:
print ("Você está aprovado por média.")

if nota  < 7.0:
    print ("Você não está aprovado por média.")


A linha assinalada em vermelho não contém um TAB no seu início, o que irá gerar um erro na execução, como este:


File "Decisao1.py", line 7
    print ("Você está aprovado por média.")
        ^
IndentationError: expected an indented block

Comando de Seleção IF-ELSE

Para evitar uma sequência longa de IFs é possível agregar o comando else a um comando if.

a = input("Digite sua nota: ")
nota = float (a)

if nota >=7.0:


    print ("Você está aprovado por média.")
else:
    print ("Você não está aprovado por média.")

Usando o comando IF-ELSE o código a ser executado após o teste depende do valor da expressão lógica que for colocada após o IF.

Caso esta expressão seja verdadeira, será executado o que está na linha seguite ao



Note que as linhas marcadas em vermelho nos dois exemplos anteriores são terminadas pelo sinal de dois-pontos

Blocos de Comandos

Note que as linhas marcadas em vermelho nos dois exemplos anteriores são terminadas pelo sinal de dois-pontos ":". Este símbolo define o início de uma estrutura denominada BLOCO.

Esta estrutura é usada quando é preciso "separar" um ou mais comandos, de outro grupo comandos do código.

Nos exemplos, o que se deseja é separar o bloco que será executado no IF, daquele bloco que será executado no ELSE.

Além do símbolo dois-pontos no final da linha, deve-se colocar todos os comandos que pertencem a um mesmo bloco deslocados/alinhados à direita, usando a tecla TAB.

No exemplo a seguir, o bloco do IF possui dois comandos, já o bloco do ELSE,  três.

a = input("Digite sua idade : ")
idade = float (a)

if idade >= 18:


    print ("Você já pode dirigir.")  # primeiro comando do bloco do IF
    print ("Lembre-se ! Se for dirigir, não beba!") # segundo comando do bloco do IF
else: 
    print ("Você ainda pode dirigir.") # primeiro comando do bloco do ELSE
    tempoQueFalta = 18 - idade # segundo comando do bloco do ELSE
    print ("Faltam ", tempoQueFalta, "anos" ) # terceiro comando do bloco do IF

Ainhamento de IFs

Quando é preciso refinar uma condição, tomando uma decisão depois que outra já foi tomada, usa-se o aninhamento de IFs.

No exemplo a seguir, caso a nota de um aluno seja menor do que 7, ainda é preciso testar se ele tem uma nota maior ou igual a 4 para que possa realizar a prova G2.

a = input("Digite sua nota: ")
nota = float (a)

if nota >=7.0:


    print ("Você está aprovado por média.")
    if nota>9.0:  # IF ANINHADO
        print ("Parabéns!")  # se nota > 9
    print ("Boas Ferias!")  #  se nota >=7
else:
    if nota>=4: # IF ANINHADO
        print ("Você pode fazer G2.");
        print ("Venha na próxima semana")
    else:
        print ("Você está reprovado!")
        print ("Você não pode fazer G2.")
       
print ("Acabou.")

Comando ELIF

Quando for necessário fazer um novo teste após um ELSE, como no exemplo anterior, é possível simplificar o comando usando um ELIF.

O trecho apresentado a seguir classifica uma pessoa de acordo com a regra descrita tabela.

Idade
Categoria
0-1
Recém Nascido
2-12
Criança
13-18
Adolescente
19-60
Adulto
60-80
Idoso
>80
Longevo

a = input("Digite a idade da pessoa: ")
idade = int (a)

if idade <=1:


    print ("Recém nascido")
else:
    if idade < 13: 
        print ("Criança")
    else:
        if idade < 18:
            print ("Adolescente")
        else:
            if idade < 60:
                print ("Adulto")
            else:
                if idade < 80:
                    print ("Idoso")
                else:
                    print ("Longevo")

print ("Acabou.")



Para evitar o deslocamento excessivo de blocos à direita, como ocorre neste exemplo, é possível usar o comando ELIF, como so exemplo a seguir. Note que todos os ELIFs ficam alinhados com o primeiro IF. O ELSE que aparce no final, é executado caso nenhuma das condições anterior seja verdadeiras.

a = input("Digite a idade da pessoa: ")
idade = int (a)

if idade <=1:


    print ("Recém nascido")
elif idade < 13:  
        print ("Criança")
elif idade < 18:
    print ("Adolescente")
elif idade < 60:
    print ("Adulto")
elif idade < 80:
    print ("Idoso")
else:
    print ("Longevo")

print ("Acabou.")

FIM