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")}