Agora que você já conhece
as estruturas condicionais em Portugol,
vamos ver na prática
como é feito no Python.
Para executar um código em Python,
existem várias formas.
Você pode instalar
na sua máquina
e executar com sua
ferramenta predileta,
ou podemos usar alguma
plataforma online.
Aqui estou no
"online-python.com",
uma plataforma que você
consegue executar códigos
rapidamente
na linguagem Python.
Eu tenho um
algoritmo implementado
onde nós vamos ver o uso do
"if" e "else" da estrutura condicional.
Primeiramente,
dentro dessa variável "idade",
nós estamos pedindo para
o usuário digitar uma idade,
transformando o que ele digitou,
quem vem em uma string,
em um número inteiro.
Depois, fazemos a validação
através do "if".
Aqui, a condição que eu quero,
"idade >= 18".
No final do "if",
eu tenho que colocar os ":"
e essa identação
é obrigatória
para entender
o que está dentro do "if".
No caso, somente esse "print"
com um texto para o usuário.
Então, eu tenho também
o comando "else", com ":",
e também o recuo para dizer que
o "print" está dentro do "else",
ou seja, se essa condição for
verdadeira, ele vai imprimir.
"Você pode assistir os vídeos";
se condição
"idade >= a 18" for falsa,
ele vai imprimir
esse outro texto.
Clicando no "Run", eu vou
conseguir executar esse código.
Então, eu vou digitar uma idade,
uma idade de 20
e, no caso,
o acesso foi concedido,
ou seja, ele imprimiu o que
está dentro do "if".
Se eu colocar uma idade
menor do que 18,
ele vai executar
o que está no "else".
Aqui no Python, eu tenho
os operadores relacionais também.
Então, eu tenho o "and".
Eu poderia colocar "idade <= 60",
ou "idade < 60",
ou seja, eu tenho a condição
idade >= 18 e idade < 60,
ele tem que atender
a essas duas condições
para que este texto
seja impresso.
Então, se eu executar aqui
e colocar 70 anos, agora,
ele não vai ter
a permissão,
porque essa condição aqui
se tornou falsa.
Além do "and", eu tenho "or",
que seria um ou outro,
então ou a idade é maior,
igual ou idade menor,
e eu tenho a negação,
também, seria o "not".
Então, no caso, ele está invertendo
o resultado dessa condição.
Se isso aqui
for verdadeiro,
o "not" vai transformar
essa expressão no falso;
e se for falso,
ele transforma em verdadeiro.
Esses são os nossos operadores
relacionais dentro do Python.
É possível trabalhar, também,
com "if" encadeado dentro do Python.
Porém, no Python existe
uma estrutura chamada "elif",
que é a junção do
"else" com o "if",
onde eu coloco já
uma condição,
ficando um código
muito mais simples.
Vamos ver na prática.
Aqui eu tenho um algoritmo
onde nós estamos validando
a premiação dos clientes
de acordo com o valor de compras
e também a frequência
que ele está realizando as compras.
Então, primeiramente,
nós estamos armazenando
nesta variável chamada
"valor_compras"
o valor total das compras
do nosso cliente;
e aqui na "frequencia"
nós pedimos para ele colocar
quantas vezes ele realizou
uma compra na nossa loja.
Essa aqui é do tipo float
e a "frequencia" do tipo inteiro.
Então,
começam as validações:
se "valor_compras >=2000.0"
e a "frequencia >=10",
ele vai ter aqui
a categoria VIP.
E então, o nosso "elif"
ou seja, o "else" junto com "if"
e esse "if" já vem
com a nova condição.
Então,
se essa expressão for falsa,
ele vai vir para o "elif" e vai
testar essa nova condição aqui.
Se essa aqui também for falsa,
ele vai para o próximo e o "elif",
testando aqui se
"valor_compras > 500"
ou "frequencia >5",
e se essa condição
não for verdadeira,
as duas expressões aqui
com "or' forem verdadeiras,
ele vai para o "else"
para imprimir
essa última mensagem
para o nosso usuário.
Vamos testar?
Então, no caso o "valor_compras",
eu comprei 1000 reais
e eu realizei 6 compras
no ano.
Aonde será que ele vai?
Qual "if" ou "elif"
que ele vai executar?
Então, aqui deu que eu estou na
categoria ouro e ganhei prêmios extras,
ou seja, se olhar aqui,
"valor_compras" é maior do que 1000,
maior ou igual, senão não teria
entrado aqui nessa condição.
Então ele validou a primeira,
viu que não foi verdadeira,
já que eu só fiz
1000 de valor e 6
e ele caiu aqui
nesse próximo e "elif".
Outra estrutura condicional existente
no Python, a partir do 3.10,
é o "match case", é o equivalente
ao "switch case" em outras linguagens.
Eu quero saber qual é o valor
que existe dentro da variável.
Se eu tenho um conjunto
de valores possíveis
e, dependendo do valor,
eu quero executar alguns comandos,
eu posso utilizar essa
estrutura condicional.
Aqui eu tenho um algoritmo que está
implementando uma calculadora,
onde o usuário tem 4 opções
e ele vai escolher a opção
de acordo com um número.
Então, 1 é soma, 2 é subtração,
3 é multiplicação e 4 é divisão
e, de acordo com esse menu
que foi apresentado,
ele vai escolher
uma das opções,
que será armazenadas
nesta variável chamado "escolha".
Depois, nós vamos ler
outros 2 números,
que serão realizados na
operação aritmética que ele escolheu,
então, vão ser armazenado
no "num1" e no "num2".
Então, nós vamos
calcular o resultado.
Como que vamos
calcular o resultado?
De acordo com o que ele
escolheu aqui nessa opção.
Então,
"match (escolha):",
o que tiver dentro dessa variável
chamada "escolha",
Se for 1, ele vai executar
esses comandos;
se for 2, esses outros;
3 essa multiplicação;
e se for 4, primeiro ele valida
se "num2" é diferente de 0,
já que eu não posso
dividir por 0.
Se for diferente, ele vai realizar
a divisão e mostrar o resultado;
se não for, ele vai falar que
"Não é possível dividir por zero!".
Esse último case,
quando colocamos esse "_",
quer dizer que nenhuma das opções
foram atendidas, ou seja,
o "escolha" que o usuário digitou
não é o número 1, 2, 3 ou 4,
ou seja, qualquer outro
valor que ele digitou,
então, nós temos aqui um "case"
que é uma ação padrão,
que vai realizar que é
"Operação inválida!".
Então, vamos testar,
vou dar o "Run".
Ele deu um erro aqui,
falando que na linha 20
tem um problema "Match (escolha)",
sintaxe inválida.
Provavelmente isso aconteceu
por causa da versão do Python,
onde não existe essa estrutura
ainda na versão escolhida.
Então, vou procurar por
uma outra plataforma online
para executarmos
o nosso código.
Então, vou escrever "python online",
ou pesquisar aqui,
Vou usar essa GDB online,
que aqui eu consigo executar
várias linguagens de programação,
inclusive o Python
na versão aqui que
aceita o "match case".
Então, eu vou copiar
o código anterior
e colocar aqui nessa nova plataforma
e vou dar o "Run.
Maravilha, funcionou.
Então, no caso eu vou
escolher a soma,
vou colocar o número 5 e o número 6
e o resultado da soma foi 11,
ou seja, como eu coloquei o valor 1,
fiz a escolha 1,
ele executou este "case"
com o valor 1.
Vou testar agora com uma opção
que não existe, não é 1, 2, 3 ou 4.
Vou colocar 9,
por exemplo,
e vou colocar 2 números
quaisquer aqui
e ele vai mostrar
"Operação inválida!",
ou seja, o "escolha",
como tinha o valor 9,
não era nem o 1, 2, 3 ou 4,
ele veio aqui para o último,
que é o "case" padrão
que nós temos.
Com isso nós vimos as estruturas
condicionais no Python,
o "if", "else", o "elif" e, também,
a nova versão com o "match case".