[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:00.00,0:00:03.97,Default,,0000,0000,0000,,Agora que você já conhece\Nas estruturas condicionais em Portugol, Dialogue: 0,0:00:03.97,0:00:07.05,Default,,0000,0000,0000,,vamos ver na prática\Ncomo é feito no Python. Dialogue: 0,0:00:14.86,0:00:17.73,Default,,0000,0000,0000,,Para executar um código em Python,\Nexistem várias formas. Dialogue: 0,0:00:17.73,0:00:19.26,Default,,0000,0000,0000,,Você pode instalar\Nna sua máquina Dialogue: 0,0:00:19.26,0:00:22.47,Default,,0000,0000,0000,,e executar com sua\Nferramenta predileta, Dialogue: 0,0:00:22.47,0:00:24.79,Default,,0000,0000,0000,,ou podemos usar alguma\Nplataforma online. Dialogue: 0,0:00:24.79,0:00:28.42,Default,,0000,0000,0000,,Aqui estou no\N"online-python.com", Dialogue: 0,0:00:28.42,0:00:30.74,Default,,0000,0000,0000,,uma plataforma que você\Nconsegue executar códigos Dialogue: 0,0:00:30.74,0:00:34.53,Default,,0000,0000,0000,,rapidamente\Nna linguagem Python. Dialogue: 0,0:00:34.53,0:00:36.97,Default,,0000,0000,0000,,Eu tenho um\Nalgoritmo implementado Dialogue: 0,0:00:36.97,0:00:41.57,Default,,0000,0000,0000,,onde nós vamos ver o uso do\N"if" e "else" da estrutura condicional. Dialogue: 0,0:00:41.57,0:00:45.16,Default,,0000,0000,0000,,Primeiramente,\Ndentro dessa variável "idade", Dialogue: 0,0:00:45.16,0:00:47.86,Default,,0000,0000,0000,,nós estamos pedindo para\No usuário digitar uma idade, Dialogue: 0,0:00:47.86,0:00:51.76,Default,,0000,0000,0000,,transformando o que ele digitou,\Nquem vem em uma string, Dialogue: 0,0:00:51.76,0:00:53.85,Default,,0000,0000,0000,,em um número inteiro. Dialogue: 0,0:00:53.85,0:00:57.86,Default,,0000,0000,0000,,Depois, fazemos a validação\Natravés do "if". Dialogue: 0,0:00:57.86,0:01:01.83,Default,,0000,0000,0000,,Aqui, a condição que eu quero,\N"idade >= 18". Dialogue: 0,0:01:01.83,0:01:04.81,Default,,0000,0000,0000,,No final do "if",\Neu tenho que colocar os ":" Dialogue: 0,0:01:04.81,0:01:08.98,Default,,0000,0000,0000,,e essa identação\Né obrigatória Dialogue: 0,0:01:08.98,0:01:12.44,Default,,0000,0000,0000,,para entender\No que está dentro do "if". Dialogue: 0,0:01:12.44,0:01:16.74,Default,,0000,0000,0000,,No caso, somente esse "print"\Ncom um texto para o usuário. Dialogue: 0,0:01:16.74,0:01:19.54,Default,,0000,0000,0000,,Então, eu tenho também\No comando "else", com ":", Dialogue: 0,0:01:19.54,0:01:23.96,Default,,0000,0000,0000,,e também o recuo para dizer que\No "print" está dentro do "else", Dialogue: 0,0:01:23.96,0:01:27.92,Default,,0000,0000,0000,,ou seja, se essa condição for\Nverdadeira, ele vai imprimir. Dialogue: 0,0:01:27.92,0:01:29.59,Default,,0000,0000,0000,,"Você pode assistir os vídeos"; Dialogue: 0,0:01:29.59,0:01:33.12,Default,,0000,0000,0000,,se condição\N"idade >= a 18" for falsa, Dialogue: 0,0:01:33.12,0:01:36.16,Default,,0000,0000,0000,,ele vai imprimir\Nesse outro texto. Dialogue: 0,0:01:36.16,0:01:39.56,Default,,0000,0000,0000,,Clicando no "Run", eu vou\Nconseguir executar esse código. Dialogue: 0,0:01:39.56,0:01:42.86,Default,,0000,0000,0000,,Então, eu vou digitar uma idade,\Numa idade de 20 Dialogue: 0,0:01:42.86,0:01:44.95,Default,,0000,0000,0000,,e, no caso,\No acesso foi concedido, Dialogue: 0,0:01:44.95,0:01:48.24,Default,,0000,0000,0000,,ou seja, ele imprimiu o que\Nestá dentro do "if". Dialogue: 0,0:01:48.24,0:01:51.90,Default,,0000,0000,0000,,Se eu colocar uma idade\Nmenor do que 18, Dialogue: 0,0:01:51.90,0:01:55.58,Default,,0000,0000,0000,,ele vai executar\No que está no "else". Dialogue: 0,0:01:55.58,0:01:59.67,Default,,0000,0000,0000,,Aqui no Python, eu tenho\Nos operadores relacionais também. Dialogue: 0,0:01:59.67,0:02:01.69,Default,,0000,0000,0000,,Então, eu tenho o "and". Dialogue: 0,0:02:01.69,0:02:08.19,Default,,0000,0000,0000,,Eu poderia colocar "idade <= 60",\Nou "idade < 60", Dialogue: 0,0:02:08.19,0:02:14.83,Default,,0000,0000,0000,,ou seja, eu tenho a condição\Nidade >= 18 e idade < 60, Dialogue: 0,0:02:14.83,0:02:17.57,Default,,0000,0000,0000,,ele tem que atender\Na essas duas condições Dialogue: 0,0:02:17.57,0:02:20.11,Default,,0000,0000,0000,,para que este texto\Nseja impresso. Dialogue: 0,0:02:20.11,0:02:23.71,Default,,0000,0000,0000,,Então, se eu executar aqui\Ne colocar 70 anos, agora, Dialogue: 0,0:02:23.71,0:02:25.21,Default,,0000,0000,0000,,ele não vai ter\Na permissão, Dialogue: 0,0:02:25.21,0:02:29.78,Default,,0000,0000,0000,,porque essa condição aqui\Nse tornou falsa. Dialogue: 0,0:02:29.78,0:02:34.12,Default,,0000,0000,0000,,Além do "and", eu tenho "or",\Nque seria um ou outro, Dialogue: 0,0:02:34.12,0:02:37.59,Default,,0000,0000,0000,,então ou a idade é maior,\Nigual ou idade menor, Dialogue: 0,0:02:37.59,0:02:41.39,Default,,0000,0000,0000,,e eu tenho a negação,\Ntambém, seria o "not". Dialogue: 0,0:02:41.39,0:02:46.10,Default,,0000,0000,0000,,Então, no caso, ele está invertendo\No resultado dessa condição. Dialogue: 0,0:02:46.10,0:02:47.41,Default,,0000,0000,0000,,Se isso aqui\Nfor verdadeiro, Dialogue: 0,0:02:47.41,0:02:50.43,Default,,0000,0000,0000,,o "not" vai transformar\Nessa expressão no falso; Dialogue: 0,0:02:50.43,0:02:53.74,Default,,0000,0000,0000,,e se for falso,\Nele transforma em verdadeiro. Dialogue: 0,0:02:53.74,0:02:58.05,Default,,0000,0000,0000,,Esses são os nossos operadores\Nrelacionais dentro do Python. Dialogue: 0,0:02:58.05,0:03:01.85,Default,,0000,0000,0000,,É possível trabalhar, também,\Ncom "if" encadeado dentro do Python. Dialogue: 0,0:03:01.85,0:03:05.75,Default,,0000,0000,0000,,Porém, no Python existe\Numa estrutura chamada "elif", Dialogue: 0,0:03:05.75,0:03:07.63,Default,,0000,0000,0000,,que é a junção do\N"else" com o "if", Dialogue: 0,0:03:07.63,0:03:09.42,Default,,0000,0000,0000,,onde eu coloco já\Numa condição, Dialogue: 0,0:03:09.42,0:03:11.39,Default,,0000,0000,0000,,ficando um código\Nmuito mais simples. Dialogue: 0,0:03:11.39,0:03:12.49,Default,,0000,0000,0000,,Vamos ver na prática. Dialogue: 0,0:03:12.49,0:03:16.06,Default,,0000,0000,0000,,Aqui eu tenho um algoritmo\Nonde nós estamos validando Dialogue: 0,0:03:16.06,0:03:19.90,Default,,0000,0000,0000,,a premiação dos clientes\Nde acordo com o valor de compras Dialogue: 0,0:03:19.90,0:03:22.74,Default,,0000,0000,0000,,e também a frequência\Nque ele está realizando as compras. Dialogue: 0,0:03:22.74,0:03:25.26,Default,,0000,0000,0000,,Então, primeiramente,\Nnós estamos armazenando Dialogue: 0,0:03:25.26,0:03:27.76,Default,,0000,0000,0000,,nesta variável chamada\N"valor_compras" Dialogue: 0,0:03:27.76,0:03:31.51,Default,,0000,0000,0000,,o valor total das compras\Ndo nosso cliente; Dialogue: 0,0:03:31.51,0:03:34.05,Default,,0000,0000,0000,,e aqui na "frequencia"\Nnós pedimos para ele colocar Dialogue: 0,0:03:34.05,0:03:38.48,Default,,0000,0000,0000,,quantas vezes ele realizou\Numa compra na nossa loja. Dialogue: 0,0:03:38.48,0:03:43.42,Default,,0000,0000,0000,,Essa aqui é do tipo float\Ne a "frequencia" do tipo inteiro. Dialogue: 0,0:03:43.42,0:03:44.89,Default,,0000,0000,0000,,Então,\Ncomeçam as validações: Dialogue: 0,0:03:44.89,0:03:51.46,Default,,0000,0000,0000,,se "valor_compras >=2000.0"\Ne a "frequencia >=10", Dialogue: 0,0:03:51.46,0:03:54.50,Default,,0000,0000,0000,,ele vai ter aqui\Na categoria VIP. Dialogue: 0,0:03:54.50,0:03:59.10,Default,,0000,0000,0000,,E então, o nosso "elif"\Nou seja, o "else" junto com "if" Dialogue: 0,0:03:59.10,0:04:02.64,Default,,0000,0000,0000,,e esse "if" já vem\Ncom a nova condição. Dialogue: 0,0:04:02.64,0:04:05.43,Default,,0000,0000,0000,,Então,\Nse essa expressão for falsa, Dialogue: 0,0:04:05.43,0:04:09.55,Default,,0000,0000,0000,,ele vai vir para o "elif" e vai\Ntestar essa nova condição aqui. Dialogue: 0,0:04:09.55,0:04:14.52,Default,,0000,0000,0000,,Se essa aqui também for falsa,\Nele vai para o próximo e o "elif", Dialogue: 0,0:04:14.52,0:04:17.38,Default,,0000,0000,0000,,testando aqui se\N"valor_compras > 500" Dialogue: 0,0:04:17.38,0:04:19.49,Default,,0000,0000,0000,,ou "frequencia >5", Dialogue: 0,0:04:19.49,0:04:22.60,Default,,0000,0000,0000,,e se essa condição\Nnão for verdadeira, Dialogue: 0,0:04:22.60,0:04:26.10,Default,,0000,0000,0000,,as duas expressões aqui\Ncom "or' forem verdadeiras, Dialogue: 0,0:04:26.10,0:04:28.81,Default,,0000,0000,0000,,ele vai para o "else"\Npara imprimir Dialogue: 0,0:04:28.81,0:04:32.74,Default,,0000,0000,0000,,essa última mensagem\Npara o nosso usuário. Dialogue: 0,0:04:32.74,0:04:34.57,Default,,0000,0000,0000,,Vamos testar? Dialogue: 0,0:04:34.57,0:04:42.17,Default,,0000,0000,0000,,Então, no caso o "valor_compras",\Neu comprei 1000 reais Dialogue: 0,0:04:42.17,0:04:44.52,Default,,0000,0000,0000,,e eu realizei 6 compras\Nno ano. Dialogue: 0,0:04:44.52,0:04:47.75,Default,,0000,0000,0000,,Aonde será que ele vai? Dialogue: 0,0:04:47.75,0:04:51.19,Default,,0000,0000,0000,,Qual "if" ou "elif"\Nque ele vai executar? Dialogue: 0,0:04:51.19,0:04:56.06,Default,,0000,0000,0000,,Então, aqui deu que eu estou na\Ncategoria ouro e ganhei prêmios extras, Dialogue: 0,0:04:56.06,0:05:01.07,Default,,0000,0000,0000,,ou seja, se olhar aqui,\N"valor_compras" é maior do que 1000, Dialogue: 0,0:05:01.07,0:05:04.47,Default,,0000,0000,0000,,maior ou igual, senão não teria\Nentrado aqui nessa condição. Dialogue: 0,0:05:04.47,0:05:07.63,Default,,0000,0000,0000,,Então ele validou a primeira,\Nviu que não foi verdadeira, Dialogue: 0,0:05:07.63,0:05:11.98,Default,,0000,0000,0000,,já que eu só fiz\N1000 de valor e 6 Dialogue: 0,0:05:11.98,0:05:14.92,Default,,0000,0000,0000,,e ele caiu aqui\Nnesse próximo e "elif". Dialogue: 0,0:05:14.92,0:05:19.15,Default,,0000,0000,0000,,Outra estrutura condicional existente\Nno Python, a partir do 3.10, Dialogue: 0,0:05:19.15,0:05:23.50,Default,,0000,0000,0000,,é o "match case", é o equivalente\Nao "switch case" em outras linguagens. Dialogue: 0,0:05:23.50,0:05:26.93,Default,,0000,0000,0000,,Eu quero saber qual é o valor\Nque existe dentro da variável. Dialogue: 0,0:05:26.93,0:05:28.98,Default,,0000,0000,0000,,Se eu tenho um conjunto\Nde valores possíveis Dialogue: 0,0:05:28.98,0:05:31.90,Default,,0000,0000,0000,,e, dependendo do valor,\Neu quero executar alguns comandos, Dialogue: 0,0:05:31.90,0:05:35.20,Default,,0000,0000,0000,,eu posso utilizar essa\Nestrutura condicional. Dialogue: 0,0:05:35.20,0:05:39.04,Default,,0000,0000,0000,,Aqui eu tenho um algoritmo que está\Nimplementando uma calculadora, Dialogue: 0,0:05:39.04,0:05:42.28,Default,,0000,0000,0000,,onde o usuário tem 4 opções Dialogue: 0,0:05:42.28,0:05:44.80,Default,,0000,0000,0000,,e ele vai escolher a opção\Nde acordo com um número. Dialogue: 0,0:05:44.80,0:05:49.19,Default,,0000,0000,0000,,Então, 1 é soma, 2 é subtração,\N3 é multiplicação e 4 é divisão Dialogue: 0,0:05:49.19,0:05:51.39,Default,,0000,0000,0000,,e, de acordo com esse menu\Nque foi apresentado, Dialogue: 0,0:05:51.39,0:05:53.30,Default,,0000,0000,0000,,ele vai escolher\Numa das opções, Dialogue: 0,0:05:53.30,0:05:58.32,Default,,0000,0000,0000,,que será armazenadas\Nnesta variável chamado "escolha". Dialogue: 0,0:05:58.32,0:06:00.79,Default,,0000,0000,0000,,Depois, nós vamos ler\Noutros 2 números, Dialogue: 0,0:06:00.79,0:06:04.06,Default,,0000,0000,0000,,que serão realizados na\Noperação aritmética que ele escolheu, Dialogue: 0,0:06:04.06,0:06:08.53,Default,,0000,0000,0000,,então, vão ser armazenado\Nno "num1" e no "num2". Dialogue: 0,0:06:08.53,0:06:10.64,Default,,0000,0000,0000,,Então, nós vamos\Ncalcular o resultado. Dialogue: 0,0:06:10.64,0:06:12.60,Default,,0000,0000,0000,,Como que vamos\Ncalcular o resultado? Dialogue: 0,0:06:12.60,0:06:16.21,Default,,0000,0000,0000,,De acordo com o que ele\Nescolheu aqui nessa opção. Dialogue: 0,0:06:16.21,0:06:18.20,Default,,0000,0000,0000,,Então,\N"match (escolha):", Dialogue: 0,0:06:18.20,0:06:21.95,Default,,0000,0000,0000,,o que tiver dentro dessa variável\Nchamada "escolha", Dialogue: 0,0:06:21.95,0:06:25.52,Default,,0000,0000,0000,,Se for 1, ele vai executar\Nesses comandos; Dialogue: 0,0:06:25.52,0:06:32.77,Default,,0000,0000,0000,,se for 2, esses outros;\N3 essa multiplicação; Dialogue: 0,0:06:32.77,0:06:38.95,Default,,0000,0000,0000,,e se for 4, primeiro ele valida\Nse "num2" é diferente de 0, Dialogue: 0,0:06:38.95,0:06:41.03,Default,,0000,0000,0000,,já que eu não posso\Ndividir por 0. Dialogue: 0,0:06:41.03,0:06:45.34,Default,,0000,0000,0000,,Se for diferente, ele vai realizar\Na divisão e mostrar o resultado; Dialogue: 0,0:06:45.34,0:06:49.17,Default,,0000,0000,0000,,se não for, ele vai falar que\N"Não é possível dividir por zero!". Dialogue: 0,0:06:49.17,0:06:53.98,Default,,0000,0000,0000,,Esse último case,\Nquando colocamos esse "_", Dialogue: 0,0:06:53.98,0:06:58.42,Default,,0000,0000,0000,,quer dizer que nenhuma das opções\Nforam atendidas, ou seja, Dialogue: 0,0:06:58.42,0:07:02.91,Default,,0000,0000,0000,,o "escolha" que o usuário digitou\Nnão é o número 1, 2, 3 ou 4, Dialogue: 0,0:07:02.91,0:07:05.06,Default,,0000,0000,0000,,ou seja, qualquer outro\Nvalor que ele digitou, Dialogue: 0,0:07:05.06,0:07:08.12,Default,,0000,0000,0000,,então, nós temos aqui um "case"\Nque é uma ação padrão, Dialogue: 0,0:07:08.12,0:07:10.43,Default,,0000,0000,0000,,que vai realizar que é\N"Operação inválida!". Dialogue: 0,0:07:10.43,0:07:14.47,Default,,0000,0000,0000,,Então, vamos testar,\Nvou dar o "Run". Dialogue: 0,0:07:14.47,0:07:17.01,Default,,0000,0000,0000,,Ele deu um erro aqui,\Nfalando que na linha 20 Dialogue: 0,0:07:17.01,0:07:22.24,Default,,0000,0000,0000,,tem um problema "Match (escolha)",\Nsintaxe inválida. Dialogue: 0,0:07:22.24,0:07:25.51,Default,,0000,0000,0000,,Provavelmente isso aconteceu\Npor causa da versão do Python, Dialogue: 0,0:07:25.51,0:07:30.95,Default,,0000,0000,0000,,onde não existe essa estrutura\Nainda na versão escolhida. Dialogue: 0,0:07:30.95,0:07:33.68,Default,,0000,0000,0000,,Então, vou procurar por\Numa outra plataforma online Dialogue: 0,0:07:33.68,0:07:35.32,Default,,0000,0000,0000,,para executarmos\No nosso código. Dialogue: 0,0:07:35.32,0:07:41.13,Default,,0000,0000,0000,,Então, vou escrever "python online",\Nou pesquisar aqui, Dialogue: 0,0:07:41.13,0:07:45.70,Default,,0000,0000,0000,,Vou usar essa GDB online,\Nque aqui eu consigo executar Dialogue: 0,0:07:45.70,0:07:48.64,Default,,0000,0000,0000,,várias linguagens de programação,\Ninclusive o Python Dialogue: 0,0:07:48.64,0:07:52.60,Default,,0000,0000,0000,,na versão aqui que\Naceita o "match case". Dialogue: 0,0:07:52.60,0:07:55.54,Default,,0000,0000,0000,,Então, eu vou copiar\No código anterior Dialogue: 0,0:07:55.54,0:08:00.48,Default,,0000,0000,0000,,e colocar aqui nessa nova plataforma\Ne vou dar o "Run. Dialogue: 0,0:08:00.48,0:08:02.08,Default,,0000,0000,0000,,Maravilha, funcionou. Dialogue: 0,0:08:02.08,0:08:06.58,Default,,0000,0000,0000,,Então, no caso eu vou\Nescolher a soma, Dialogue: 0,0:08:06.58,0:08:11.66,Default,,0000,0000,0000,,vou colocar o número 5 e o número 6\Ne o resultado da soma foi 11, Dialogue: 0,0:08:11.66,0:08:15.39,Default,,0000,0000,0000,,ou seja, como eu coloquei o valor 1,\Nfiz a escolha 1, Dialogue: 0,0:08:15.39,0:08:18.76,Default,,0000,0000,0000,,ele executou este "case"\Ncom o valor 1. Dialogue: 0,0:08:18.76,0:08:24.37,Default,,0000,0000,0000,,Vou testar agora com uma opção\Nque não existe, não é 1, 2, 3 ou 4. Dialogue: 0,0:08:24.37,0:08:26.70,Default,,0000,0000,0000,,Vou colocar 9,\Npor exemplo, Dialogue: 0,0:08:26.70,0:08:29.67,Default,,0000,0000,0000,,e vou colocar 2 números\Nquaisquer aqui Dialogue: 0,0:08:29.67,0:08:31.72,Default,,0000,0000,0000,,e ele vai mostrar\N"Operação inválida!", Dialogue: 0,0:08:31.72,0:08:35.02,Default,,0000,0000,0000,,ou seja, o "escolha",\Ncomo tinha o valor 9, Dialogue: 0,0:08:35.02,0:08:38.75,Default,,0000,0000,0000,,não era nem o 1, 2, 3 ou 4,\Nele veio aqui para o último, Dialogue: 0,0:08:38.75,0:08:41.19,Default,,0000,0000,0000,,que é o "case" padrão\Nque nós temos. Dialogue: 0,0:08:41.19,0:08:44.26,Default,,0000,0000,0000,,Com isso nós vimos as estruturas\Ncondicionais no Python, Dialogue: 0,0:08:44.26,0:08:49.47,Default,,0000,0000,0000,,o "if", "else", o "elif" e, também,\Na nova versão com o "match case".