Pular para o conteúdo

if … else

Definição

O comando if verifica se uma determinada expressão (teste lógico) é verdadeira. Em caso positivo, o bloco dentro do comando if é executado. Se a expressão é falsa e existe um comando else, o bloco dentro do else é executado. É possível ter comandos if … else dentro de um if e dentro de um else (aninhamento)

É importante observar:

  • Uso de indentação do bloco a ser executado depois de um if ou de um else;
  • Uso de dois pontos para encerrar o teste lógico ou após um else.

Exemplos

  • Exemplo: verifica se a variável Verdade possui valor True ou False.
Verdade = True
if Verdade:
   print("É verdade")
else:
   print("É mentira")
  • Exemplo: verifica se o número recebido na linha de comandos é par ou ímpar.
num = int(input("Digite um número inteiro: "))
if (num % 2 == 0):
    print(num, "é um número par")
else:
    print(num, "é um número ímpar")
  • Exemplo: verifica se o número fornecido é menor que 100; caso isto seja verdade, verifica se o número é par ou ímpar.
num = int(input("Digite um número inteiro: "))
if (num < 100):
   print(num, "é menor que 100")
   if (num % 2 == 0):
      print(num, "é um número par")
   else:
      print(num, "é um número impar")
else: 
   print(num, "é maior que 99")
  • Exemplo: verifica inicialmente se o número fornecido é número par menor que 100. Em caso afirmativo, imprime esta informação. Caso o teste tenha dado falso, verifica primeiro se o número é menor que 100 e depois se é um número ímpar.
num = int(input("Digite um número inteiro: "))
if (num < 100) and (num % 2 == 0):
   print(num, "é um número par menor que 100")
else:
   if (num > 100):
      print(num, "é um número maior que 100")
   else:
      if (num % 2 != 0):
         print(num, "é um número ímpar")
      else:
         print("fim do teste")

É possível substituir else… if por elif . A vantagem da substituição é que não há necessidade de indentar o código.

num = int(input("Digite um número inteiro: "))
if (num < 100) and (num % 2 == 0):
   print(num, "é um número par menor que 100")
elif (num > 100):
   print(num, "é um número maior que 100")
elif (num % 2 != 0):
   print(num, "é um número ímpar")
else:
   print("fim do teste")
  • Exemplo: o fluxo normal da estrutura if … else é fazer o teste lógico e definir o que fazer em seguida.
num = int(input("Digite um número inteiro: "))
if num > 100: print(num, "é maior que 100")
else: print(num, "é menor que ou igual a 100")

Mas é possível colocar o teste lógico após o bloco a ser executado. Este tipo de estrutura costuma ser chamada em Python de operador ternário (um valor é devolvido após um teste feito em uma única linha) ou de expressão condicional.

num = int(input("Digite um número inteiro: "))
print(num, "é maior que 100") if num > 100 else print(num, "é menor que ou igual a 100")

Além disso, é possível encadear vários testes lógicos.

num = int(input("Digite um número inteiro: "))
print(num, "é maior que 100") if num > 100 else print(num, "é maior que 50") if num > 50 else print(num, "é menor que 51")

Para mais de um comando, use chaves para agrupar o bloco.

num = int(input("Digite um número inteiro: "))
{print(num, "é maior que 100"), print("Segundo print do if")} if num > 100 else {print(num, "é maior que 50"), print("segundo print do else")} if num > 50 else {print(num, "é menor que 51"), print("segundo print do segundo else")}