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
or | OU lógico |
and | E lógico |
not | Negaçã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 |
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.
Para evitar uma sequência longa de IFs é possível agregar o comando else a um comando if.
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
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.
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.
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 |