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".