Skip to content
Get App

Aula 03 - Introdução ao Python II

Aula de Python (parte 2) do PET BCC/PANDA UFSCar: revisão rápida e introdução aos loops for e while, com range, passos, iteração em strings e listas, e exercícios práticos.

Key Takeaways

  • Loops automatizam a repetição de trechos de código, simplificando a programação
  • No for com range, o valor final é exclusivo e a contagem começa em zero por padrão
  • O while repete enquanto uma condição for verdadeira e pode ser interrompido com break
  • Funções encapsulam lógica reutilizável e precisam ser chamadas com os argumentos corretos

What the video covers

  • Revisão dos conceitos da aula anterior: função print, condicionais, booleanos e tipos de dados
  • Introdução aos loops como ferramenta para automatizar tarefas repetitivas e evitar replicação de código
  • Apresentação dos dois tipos de loop em Python: for e while
  • Sintaxe do for com range: início, fim (exclusivo) e passo, com exemplos de impressão de variáveis e textos
  • Uso de operações aritméticas dentro do loop, como multiplicação e soma
  • Iteração sobre listas de strings e nomes, com exemplos práticos
  • Introdução ao while, com condição de parada e comando break
  • Uso de funções e entrada de dados com input, conversão de tipos com int
  • Explicação de funções como len, map e split para manipulação de listas e textos
  • Criação e chamada de funções, com parâmetros e argumentos, incluindo exemplo de verificação de maioridade

Answers

Questions about this video

Qual a diferença entre os loops for e while apresentados na aula?

O for é usado para repetir um trecho de código um número definido de vezes, geralmente com range. O while repete enquanto uma condição for verdadeira, sendo útil quando não se sabe de antemão quantas repetições serão necessárias.

Por que o range(5) imprime de 0 a 4 e não até 5?

Na função range, o valor final é exclusivo, ou seja, o loop vai até um antes do número informado. Além disso, a contagem começa em zero por padrão, então range(5) gera 0, 1, 2, 3 e 4.

Para que serve o comando break no loop while?

O break interrompe imediatamente a execução do loop, fazendo o programa passar para o código logo abaixo dele. É usado quando uma condição especial é atingida e a repetição precisa parar antes do fim previsto.

Full Transcript — Download SRT & Markdown

00:00
Speaker A
Ok, estamos no ar. OK. Vou esperar alguns segundos. Ah beleza. Eh, acho que eu vou começar, então. Boa noite, pessoal. Meu nome é Antônio, eu sou do PET BCC. Hoje a gente tá aqui com o Felipe e o Vinícius. Vinícius e
00:35
Speaker A
Felipe, se quiserem dar um um alô aí pro pessoal. Boa noite, gente. Boa noite, gente. Sou o Vinícius.
00:45
Speaker A
Eh, então, hoje a gente vai dar continuidade à nossa, ao nosso curso de Python. A gente começou na semana passada e agora a gente vai terminar a segunda parte.
00:59
Speaker A
Então vamos relembrar algumas coisas. Então só falando, né, o que a gente viu na na última aula. Então na última aula, a gente viu conceitos básicos de Python, né? Então funções básicas como função print.
01:17
Speaker A
A gente também aprendeu eh a usar condicional, a gente aprendeu a usar buleano, a gente aprendeu sobre os tipos, coisas que vão fundamentar a aula de hoje, né, que a gente vai passar por loops funções e e é isso. Só que é um conteúdo bem
01:36
Speaker A
denso. Então, se vocês tiverem alguma dúvida sobre a última aula ou precisarem de algum tempo para algum exercício, vocês dão um alô pra gente nos comentários, né, o pessoal avisa a gente aqui.
01:51
Speaker A
Então, vamos lá, gente. Eh, então, nossa primeira nosso primeiro item da aula de hoje são os loops, o que são instruções de loop, né? Então, assim como na vida real, onde a gente repete certas ações rotineiras, na programação, os loops são ferramentas
02:12
Speaker A
que automativam tarefas similares. Então, os loops permitem a repetição de uma parte específica do código. Então, isso simplifica a escrita de código e elimina a necessidade de replicar instruções várias vezes no mesmo código.
02:27
Speaker A
E em Python a gente tem dois tipos de loop, a gente tem o for e a gente tem o while. Então, basicamente, um trecho de código que se repete por alguma condição que tem que ser satisfeita ou não satisfeita.
02:45
Speaker A
Então, o primeiro que a gente vai ver é o for. Eu não vou ficar me alongando muito aqui no slide, eu já vou direto pro nosso pro nosso ambiente. Lembrando, né, que a gente usa um ambiente para programar. Eu tô usando aqui o online
03:01
Speaker A
GDB. Vou até deixar o link dele aqui para vocês, se vocês quiserem. Ah, aliás, né, eu tenho que deixar no eu vou deixar no direto no YouTube. Deixei aí, tá? É, Antônio ou não? Então, esse é o link do nosso
03:20
Speaker A
ambiente e se vocês tiverem alguma dúvida também sobre o ambiente, é só falar pra gente.
03:29
Speaker A
Então, o que é o forum? O forum é uma estrutura de loop. Então, como isso acontece?
03:37
Speaker A
Então, vamos começar pela sintaxe, né? Paraa gente escrever o for, a gente utiliza a palavra for.
03:45
Speaker A
E I, nesse caso, é uma variável, mas eh entenda aí como qualquer coisa. Então, for, uma variável in range.
04:01
Speaker A
Range vai ser o número de vezes que eu vou repetir. Basicamente, vou abrir parênteses e vou colocar um número inteiro, por exemplo, cinco. E aqui dentro desse for eu vou colocar alguma coisa. Perceba. Ah, tem dois pontos, né?
04:21
Speaker A
dois pontos. Só um minutinho, trocar meu teclado aqui. Então, for e em range 5, por exemplo, né? um número inteiro. E aí, perceba que eu coloco dois pontos e aí eu tenho que dar um tab aqui para que
04:37
Speaker A
tudo que eu for colocar dentro do for fique dentro do for de fato. Então eu vou colocar um print e vou printar essa esse essa variável.
04:51
Speaker A
Então percebam o que vai acontecer. Vamos dar um run aqui. Então o que aconteceu?
04:58
Speaker A
Ele iterou, a gente usa essa palavra na em computação no geral, né? Ieração. Eh, ele iterou eh cinco vezes pelo pelo que tá dentro aqui do for e imprimiu essa variável aqui. E aí, lembra? Lembrando, né, que sempre a
05:23
Speaker A
gente inicia as variáveis em zero. Então, o primeiro número foi zero, depois ele ele veio para cá, zero.
05:31
Speaker A
Depois ele volta, um, volta, dois, volta, três, até a gente atingir cinco. Só que ele não chega até o cinco, né?
05:43
Speaker A
Porque a quinta iteração vai ser o número quatro, né? Porque a primeira foi zero. Então, de 0 1 2 3 4, certo? Então, um exemplo bem simples de sintaxe de for, só que o for ele pode ter outras sintaxas também.
06:04
Speaker A
Agora, dando um exemplo de de texto, então a mesma sintaxe, né? for e in range 5.
06:19
Speaker A
Agora, em vez de imprimir a variável, eu vou imprimir um texto. Não sei se ficou claro para vocês aqui, mas é como se eu tivesse somando um a essa variável de certa forma. De certa forma não. É, é
06:34
Speaker A
isso que acontece. Então eu vou repetir esse loop aqui cinco vezes, dependendo do range. Pode ser cinco, pode ser 10, pode ser 100, 100 vezes.
06:49
Speaker A
Ah, perdão, eu deixei aqui. Pode ser 100, então ele vai ter aar 100 vezes.
06:54
Speaker A
Ele vai imprimir 100 vezes. Então agora vamos para esse exemplo do texto. Então, for e in range cinco. [roncando] E aqui no caso agora eu vou imprimir um texto print.
07:25
Speaker A
Olá Python. Ah, dois pontos. Olha só, eu errando aqui também. Então, nunca esqueçam do dois pontos.
07:41
Speaker A
Então, ele vai imprimir cinco vezes o essa mensagem até a variável chegar ao cinco.
07:53
Speaker A
Certo? Por enquanto tá tudo OK. Se eu ver, alguém falou aqui nos comentários, tá tudo OK. Beleza?
08:07
Speaker A
Então agora mudando só um pouquinho o que a gente tá fazendo. Então a gente vai usar a mesma sintaxe for e in range.
08:18
Speaker A
A gente vai colocar 10 agora, por exemplo. Só que agora a gente vai fazer uma operação dentro do print.
08:34
Speaker A
Então eu vou continuar com a minha variável i, só que agora eu vou usar, por exemplo, o operador de multiplicação por dois.
08:50
Speaker A
Pagar aqui dois pontos, nunca se esqueçam. Então, o que aconteceu? Eh, em cada uma da intereração, ele multiplicou por dois o o subsequente.
09:15
Speaker A
Então, por exemplo, que é aqui agora com exponenciação, certo? só manipulando. Então, poderia fazer isso, por exemplo, e mais dois, certo?
09:41
Speaker A
Então, qualquer tipo de operação ou i - 2, então ele começou no -2, -1 até o 7.
09:58
Speaker A
Certo? Então, voltando ao nosso exemplo, por exemplo, com a multiplicação, primeiro ele começa com zero, depois 1 x 3, 1 x 2, 1 x 3, 2 x 3, 3 x 3.
10:15
Speaker A
A mesma coisa com o 10. Aqui a gente vai fazer 1 x 0, não, 0 x 0. 1 0 x 10, perdão, 0 x 10, 1 x 10, 2 x 10 e assim por diante.
10:31
Speaker A
Certo? Então, fazendo mais um exemplo agora. Agora eu vou alterar o início do range.
10:55
Speaker A
Então, for em inange. Agora eu quero, eu não quero que o meu início seja zero, eu quero que o meu início seja um. Porque aqui nesses outros exemplos a gente sempre iniciou do zero, certo? No loop.
11:14
Speaker A
Mas agora eu quero que o meu início não seja zero, seja um. Então, como é a sintaxe disso? Eu coloco o início o fim. Então ele vai iniciar em um e vai terminar antes do seis.
11:32
Speaker A
Então, só pra gente ver o que vai acontecer. Paguei paguei dois pontos, galera. Nunca se esqueça.
11:49
Speaker A
Então, ou seja, ele imprimiu o um, o trê, o 4 e o 5 e o seis ficar de fora, como tá aqui na sintaxe, certo?
12:10
Speaker A
Aí eu posso adicionar mais um valor no range. Eu posso adicionar o passo com que eu pulo no loop.
12:18
Speaker A
Então, pegar aqui, então, for in range. Então, o primeiro valor é o meu valor de início zero.
12:35
Speaker A
Segundo valor é o meu valor de término, né, antes desse valor, no caso, então até 10, 11. E aqui é o meu passo, ou seja, de quantos em quantos eu vou pular? Então, no meu caso, vai ser dois.
12:48
Speaker A
Eu vou pular de dois em dois. Então, vou começar no zero e até o 10, né? Porque é sempre um antes, 11, mas no caso é 10. E pular de dois em dois.
13:05
Speaker A
Dois pontos e eu apaguei o que eu tava embaixo. Print. Percebe o que aconteceu? Então, eu comecei de fato no zero, só que aí eu vou ir pulando de dois em dois. Então, zero, depois eu já fui para 2, 4,
13:28
Speaker A
certo? Então, início, fim, um antes do fim, né? Então, no caso, 10 e o passo, essa é a sintaxe do for e in range.
13:43
Speaker A
Então, agora eu vou dar um tempo para vocês fazerem. Eh, eu vou querer, vou colocar aqui no comentário. Então, eu quero início em três eh até 13 de 2 em dois.
14:13
Speaker A
Vou dar alguns segundos para vocês fazerem. E quando vocês tiverem feito, podem colocar lá no no chat do YouTube que eu que eu tô olhando.
14:34
Speaker A
Dá só alguns alguns segundinhos, pessoal. Confirme para mim também se tá se tá OK esse tamanho da do que vocês estão enxergando todo o código tá bom também.
15:20
Speaker A
Beleza. O Vinícius ele colocou aqui e tá certinho, Vinícius. Vamos, vamos colocar, vamos fazer esse exercício.
15:29
Speaker A
Então for em inange. Então, eu quero iniciar em três. Inicia em três. Quero ir até o 13, só que eu tenho que colocar um a mais.
15:43
Speaker A
Lembro? Porque eu sempre coloco um a mais, porque ele vai até um antes. Então 14 e de dois em dois e dou meu print e fez certinho. Começou em 3, 5, 7 13.
16:14
Speaker A
Certo? Então é isso. Vamos pra Vamos pro próximo. Então agora eu posso colocar muitas coisas dentro do for, inclusive condicional que a gente viu na última aula.
16:30
Speaker A
Então, por exemplo, eu posso fazer um for e em range eh do número 10 até 10.
16:45
Speaker A
E aí eu posso colocar uma condição. Então, suponha que eu quero separar os números eh que são maiores ou iguais a cinco dos números que são menores que cinco. Então, eu coloco um condicional aqui. Lembra que a gente viu na última
17:01
Speaker A
aula? If. Então agora a gente coloca a nossa condição I menor que 5. E aí eu vou colocar o meu print, vou imprimir a minha variável colocando i, vírgula um textinho. Que que eu vou colocar nesse textinho? Então, aspas duplas, né? Abro
17:27
Speaker A
aspas duplas. é menor que 5. E aí o resto, ou [limpando a garganta] seja, ELS, né, lembram da última aula, eu vou imprimir a minha variável e vírgula, aspas duplas é maior que 5.
18:04
Speaker A
E vamos rodar esse código aqui. Então, ou seja, Z0 é menor que 5, 1 é menor que 5 até cinco. Cinco é maior que cinco. A gente poderia colocar até uma condição, né? Mas nesse caso a gente não
18:23
Speaker A
colocou. Ah, porque é maior ou igual a cinco né? Mas a gente poderia criar uma outra condição eh de apenas do C, mas então sim. Então zero é menor que 5, 5 é maior ou igual a 5, 6 é maior ou
18:43
Speaker A
igual a 5, 9 é maior igual a 5. Ok? Então, só para saber que a gente pode colocar eh condições dentro do for, dentro do bloco de loop.
18:57
Speaker A
Certo? Agora um outro exemplo, ainda usando o condicional for número. Lembra que isso aqui é só a variável, né? Então pode ser qualquer, respeitando os nomes das variáveis, né?
19:17
Speaker A
Qualquer nome. For número in range 10. Eu vou ter uma condição ifo mod 2 igual a 0. Lembra que quando eu vou colocar a condição, o operador de igualdade é dois iguais igual a zero.
19:49
Speaker A
Que que isso me indica? Quando eu faço a divisão de um número por dois e o resto dá zero, indica que esse número é par. A gente viu isso na última aula também.
19:57
Speaker A
Então eu vou fazer o print do meu da minha variável número e de um texto é parar.
20:14
Speaker A
E el, né? Se o resto for qualquer coisa que não seja zero, ele é ímpar.
20:23
Speaker A
EL else print número é. Apaguei aqui e apaguei. Então vamos rodar para ver o que vai acontecer.
20:44
Speaker A
o esperado, né? Zero é par, um é ímpar, dois é par, três é ímpar, até o nove.
20:51
Speaker A
Lembra que ele vai até um antes desse aqui. Então, mais um exemplo de condição eh dentro do for.
21:06
Speaker A
Agora a gente vai eh usar, manipular dentro do for estruturas que a gente já viu na última aula, como listas. A gente viu listas, dicionários, né? Nesse caso, a gente vai ver, a gente vai manipular uma lista. Então, vamos criar uma lista,
21:23
Speaker A
uma lista com o nome nomes. E o que eu vou colocar dentro dessa lista? Eu vou colocar nomes.
21:31
Speaker A
Então, vou colocar o nome Ana, o nome Antônio, o nome Felipe e o nome Vinícius.
21:52
Speaker A
Então essa é a minha lista de nomes. E agora perceba que eu vou mudar um pouco a sintaxe, né? Então vou utilizar o for.
22:04
Speaker A
E agora eu vou utilizar o nome de uma variável nome, só que agora eu vou eu vou iterar sobre a lista, então não mais sobre um range.
22:17
Speaker A
Então eu vou usar essa esse tipo de sintaxe aqui. For uma variável em a lista nomes.
22:29
Speaker A
E aí eu vou imprimir a variável nome. E o que ele vai fazer? Ele vai passar por todos os nomes.
22:39
Speaker A
Vamos ver o que vai acontecer. Passou por todos os nomes. Então é isso que ele faz quando, é isso que acontece quando eu sobre uma lista.
22:55
Speaker A
Então agora para um outro tipo de lista. Isso é uma uma lista com strings, né, com nomes.
23:02
Speaker A
Então, suponha que eu tenho uma lista aqui. Notas ã 6 8 6 9 10. Mesma coisa, né?
23:17
Speaker A
Então for nota, minha variável, né, que eu criei em notas, que é a minha lista, eu vou fazer o print da minha variável, ou seja, ele vai printar todos [roncando] todas as notas, todos os elementos.
23:46
Speaker A
Então vamos executar, ou seja, print tudo, certo? Então acho que a única diferença aqui é a sintaxe que muda um pouquinho, mas é bem tranquilo.
24:05
Speaker A
Então agora vamos utilizar uma lista e colocar uma condição dentro do for. e iterar sobre a lista.
24:17
Speaker A
Então, vou criar uma lista aqui de notas. Então 5 9 5 6 8 3 7 9 e vou criar meu for. Então, for nota, minha variável em notas.
24:45
Speaker A
if. Então agora vou vou estabelecer uma condição. Se a minha nota for maior ou igual a 6, eu vou printar que a pessoa foi aprovada.
25:04
Speaker A
Nota. Vou imprimir minha variável e provável. E é se a pessoa não tira maior mais que seis, ela foi reprovada.
25:21
Speaker A
Nota reprovado. Então vamos executar isso aqui. Então eh comportamento esperado, né? menor que 6 reprovado.
25:45
Speaker A
Maior ou igual a 6 aprovado. Então esse foi um exemplo, né, de lista e condicional.
25:59
Speaker A
Então vamos voltar pros slides agora, só pra gente ver o que onde a gente parou.
26:06
Speaker A
Então, a gente viu, a gente fez esse exercício aqui, né, com if, a gente iterou sobre uma lista.
26:26
Speaker A
E aqui a gente pode outros exemplos, né? a gente pode eh imprimir eh um determinado índice da lista, né?
26:38
Speaker A
Então, a carteração do for variável item representa um diferente elemento da lista. Então, o for para de rodar automaticamente eu chegar no último, como a gente fez também, né? Então, aqui eu posso usar um outro exemplo, né? Eu
26:51
Speaker A
posso usar um, eu posso criar uma lista vazia e aí usar um um for para fazer o append de números dentro da lista. Então, for in range 5, eu vou fazer o append, ou seja, eu vou adicionar coisas eh
27:12
Speaker A
a cada iteração do for, ou seja, 0 1 2 3 4. Então, a lista agora possui os valores de zer a 4.
27:23
Speaker A
Vamos voltar agora que eu acho que é mais interessante a gente praticar aqui. Com cuidado que eu não posso avançar muito no tempo.
27:36
Speaker A
Então vamos pular aqui para esse aqui, eh, somando valores. Então, primeiro a gente vai começar com uma variável soma igual a zero.
28:02
Speaker A
E aí a gente vai fazer um for e inang 5. E aí dentro desse for a gente vai criar uma variável número e dentro dela a gente vai fazer uma imputação de um tipo específico. Lembram disso da última
28:24
Speaker A
aula? Então eu vou eu vou querer um tipo float e dentro desse tipo float eu vou colocar um input, ou seja, para pedir pro usuário escrever alguma coisa.
28:36
Speaker A
É, Antônio ainda táando de slide, viu? Oh, perdão. Obrigado por falar. Perdão pessoal. Eh, então agora só retomando, né? Eu criei essa variável aqui, soma igual a zero e for in range 5 e, ou seja, até 5, eu vou
28:57
Speaker A
criar uma variável número e vou pedir para fazer o input de um número do tipo float.
29:08
Speaker A
Então, eu vou colocar um textinho aqui, né? Digital. E aí eu quero dentro do for ainda que esse número se someo que tinha dentro da soma. Então como que eu faço isso? Então esse esse esse programinha aqui, ele vai só somar valores dentro
29:43
Speaker A
dessa variável. Então que a variável vai começar em zero. Tudo que eu for colocando no for, ele vai somando dentro da variável soma. Só que eu quero que a soma continue, né? Então eu somo a própria soma dentro do número. Vai ficar
29:58
Speaker A
mais claro quando a gente executar. E depois eu vou mostrar o resultado no fim.
30:10
Speaker A
print soma som. Então vamos lá para ver o que vai acontecer. Deixa eu ver se eu apaguei o que tava lá em cima.
30:30
Speaker A
Apaguei. Então, OK. Então vamos executar isso aqui. Então vou digitar um número. Tem que ser um float, né? Então lembrando, um ponto decimal. Então 3 3.4.
30:51
Speaker A
Opa, eu acho que deu um bug aqui. Não tô querendo empurrar. Acho que é coisa do meu teclado, gente.
31:09
Speaker A
É porque meu teclado tá meio estranho mesmo. Eu tô usando uma um teclado de outro formato.
31:21
Speaker A
É. Será que eu errei alguma coisa de sintaxe? Não, acho que é o meu teclado mesmo.
31:29
Speaker A
Deixa eu tentar mais uma vez executar, senão a gente passa pro próximo. Sem problemas.
31:34
Speaker A
Agora ele foi. Tá muito lento. É, agora ele foi. Então, vou digitar cinco números aqui do tipo float.
32:03
Speaker A
26.1, ou seja, o comportamento esperado. E ele foi o que o que aconteceu aqui. Então, eu digitei o número, por exemplo, 3.4.
32:13
Speaker A
Então, na primeira interação, eh, meu número 3.4, eu somei igual a soma mais número, só que soma começou com zero. Eu inicializei o meu o meu minha variável com zero. Então, foi soma igual a 0 + 3.4.
32:31
Speaker A
Então, soma, ficou 3.4 na primeira iteração. Só que depois quando eu fui pra segunda iteração, então voltei para cá, eu digitei mais um número que foi 4.6.
32:42
Speaker A
Então, como ficou aqui? Ficou soma igual a 3.4, que é o que eu havia esto, né? Mais 4.6. Então, foi somando eh em um loop, que é exatamente o que ele faz. Então, por isso que a gente utiliza essa estrutura. Ou eu poderia
33:01
Speaker A
simplesmente colocar, existe outro operador que é o mais igual, que também é a mesma coisa. Então, quer dizer que eu tô somando um número dentro dessa variável sem perder o que tava antes.
33:15
Speaker A
Então, isso e isso é a mesma coisa. Agora eu vou pular aqui pro último exemplo porque eu já estou um pouco sem tempo e é um exemplo grande.
33:34
Speaker A
Deixa eu apagar aqui. Então vou até tirar o comentário desse aqui. Então eh fazer esse 16 contando o números pares.
33:57
Speaker A
Então, eu vou começar o contador de números pares em zero. Aí depois disso eu vou ler cinco números. Então, for e in range 5 eu vou ler números inteiros. Então, lembra, para ver o tipo do número, para garantir
34:28
Speaker A
que o tipo do número que eu quero seja o tipo de fato, eu coloco o tipo, né, inteiro. E aí depois eu coloco o input dentro do tipo.
34:44
Speaker A
Então, digite o número, tá? E aí ainda dentro do for eu vou verificar se o meu número é par.
35:03
Speaker A
Então, se o meu número mod 2 igual a zer, ou seja, o que a gente tinha visto anteriormente, né? Se o meu número tiver eh se o meu número dividido por dois tiver resto zero, ele vai ser par. Então eu vou pegar
35:25
Speaker A
o que tá em pares e somar mais um. Ou seja, o que eu tô fazendo aqui? Eu estou adicionando um a essa variável aqui que iniciou em zero.
35:38
Speaker A
Eu tô contando quantos números pares eh existem dentre os números que eu digitei. E aí a gente não precisa nem colocar eles, porque se a se não tiver se não for par, a gente não vai fazer nada. E
35:54
Speaker A
aí depois a gente sai do for, né? Se a gente volta para cá e a gente printa o nosso resultado que é a quantidade de pares e aí vírgula a variável pares.
36:18
Speaker A
Então eu poderia colocar assim, né? ou daquele jeito que eu falei para vocês, que é a mesma coisa, tá? Mais igual funciona da mesma forma, mas eu vou deixar dessa fórmula, dessa forma aqui, que eu acho que é um pouco mais intuitiva.
36:41
Speaker A
Então, vamos ver, vamos ver o que vai acontecer. Então, digite o número. Vou digitar o número dois.
36:52
Speaker A
E hoje ele tá lento. Aí pessoal, hoje eu hoje o online GDB tá um pouco lento.
37:24
Speaker A
Dois. Aí foi. Então, três, 2, 5 6. Então, eu digitei três números pares, um, o número dois, o número dois novamente e o número seis. E ele contou dentro da variável pares, ele armazenou quantos números pares resultaram. no caso três.
37:57
Speaker A
Então esse foi bem rapidamente a estrutura de repetição for. E agora acredito que o Felipe vai continuar com a estrutura while, que é uma outra estrutura de repetição.
38:15
Speaker A
Aham. Muito obrigado, Antônio, eh, por falar sobre o for. Agora vou dar continuidade à outra estrutura de repetição, que nem o Antônio falou.
38:24
Speaker A
Eh, a única diferença dela que eu gostaria de comentar é que, por exemplo, quando a gente vai usar essas estruturas de repetição, o for a gente utiliza principalmente para números que a gente já conhece. Então, como o Antônio mesmo falou, se a gente
38:48
Speaker A
tem uma lista com nomes ou, por exemplo, uma lista com frutas, nomes de carro, etc., a gente tem o tamanho dessa lista e a gente consegue iterar cada item dessa lista e realizar alguma ação, alguma lógica, eh, ou dar print no nome para
39:05
Speaker A
saber o que tem, eh, em cada item dessa, desse vetor, né? O I é diferente porque ele a gente utiliza ele principalmente porque a gente não sabe quantas vezes a o loop precisa ser executado.
39:24
Speaker A
Vamos examinar isso aqui de perto. Eh, aqui d um exemplo, a gente tem a variável igual a 10, ou seja, essa variável vale 10.
39:35
Speaker A
E a gente tem variável maior que zero. Esse aqui é a nossa condição, a nossa condição goleana. Então, se a nossa variável, por exemplo, aqui eh for igual a zero, esse while eh esse essa parte aqui de baixo não vai executar.
39:54
Speaker A
Eh, aqui a gente tem um print variável xes 10, que nem um exemplo do Antônio, e depois variável men ig. Essa aqui é uma simplificação que a gente utiliza algumas das vezes, mas significa basicamente variável é igual variável
40:12
Speaker A
men. Ou seja, a gente tá subtraindo um dessa nossa variável toda vez que a gente executa esse esse loop. Então, no primeiro ciclo, nossa variável vale 10 e ela é maior que zero. Então, a gente executa aqui e printa 10 x 10, que dá
40:28
Speaker A
100, e diminui um dela. No próximo ciclo, como a nossa variável vale nove, ela ainda continua maior que zero e continua executando. Só que vai chegar um momento que a nossa variável eh vai valer um e a gente vai printar vezes 10,
40:45
Speaker A
que vai ocorrer 10 aqui no shell. Só que quando a gente diminui um dela, ela vai valer zero. Nesse ponto, a nossa verificação retorna falso e o nosso loop ele ele cessa, ele para de acontecer.
41:01
Speaker A
A gente vai examinar como isso, a gente vai examinar quando isso acontece eh exatamente, né? alguns exemplos que eu vou mostrar aqui.
41:11
Speaker A
Aqui o exemplo da bomba é um exemplo bem legalzinho. Eh, eu vou compartilhar a tela aqui do meu ambiente de de código.
41:29
Speaker A
Tá dando para ver? Tá uma fonte também bom. Tá dando para ver, Antônio, você que tá vendo a transmissão.
41:44
Speaker A
Tá dando para ver o VS Code, sim. Tá, tá bom. Tá bom. Tá bom. Aqui a gente tem um código que é o exemplo da bomba.
41:55
Speaker A
Eh, aqui eu tô usando o time, que ele simplesmente ele vai ser utilizado pra gente fazer o timer da bomba. A gente tem uma contagem aqui.
42:06
Speaker A
A contagem vai de 10 até zero, que é quando a bomba vai explodir. Aqui a gente tem um wh. Enquanto a contagem for maior ou igual a um, a gente executa o código aqui de dentro. O que a gente,
42:21
Speaker A
qual o código aqui de dentro? A gente printa a nossa contagem e espera meio segundo para dar o efeito dramático da bomba.
42:32
Speaker A
Depois que a gente espera esse meio segundo, aí a gente reduz um contador da nossa bomba e depois eh quando chegar a zero, ou seja, a contagem vai ser menor e que um, ah, a gente vai sair desse while e
42:51
Speaker A
quando isso acontece, o código executivo a ser executado é o código logo abaixo do wi.
42:59
Speaker A
Então, se a gente fizer aqui, a gente inicia a sequência e bom, a bomba explode. Eh, dá para fazer isso como for também, só que a a diferença do wi é que a gente realiza essa verificação aqui em cima toda vez.
43:21
Speaker A
Então tem alguns problemas que é muito mais útil a gente utilizar o while do que o for, porque a gente pode realizar esse fluxo aqui de dentro eh de maneiras indeterminadas, de eh vezes indeterminadas.
43:38
Speaker A
Aqui é um exemplo que de um de uma maneira que de uma de uma um exercício que não dá para fazer com for, que a gente tem um why true. Lembra aqui que a gente faz uma verificação?
43:53
Speaker A
Se essa verificação for verdadeira, eu expliquei que o código de dentro vai ser executado. Se ela for falsa, o próximo código logo abaixo vai ser executado.
44:03
Speaker A
Então, se a gente colocar uma variável aqui que [limpando a garganta] sempre vai ser verdadeira, que variável igual a true, aqui, por exemplo, e colocar aqui a variável que dá no mesmo, eh, esse while vai executar para sempre.
44:19
Speaker A
Então esse código aqui da dentro vai ser executado até eu fechar o programa, até eu fazer ele parar forçadamente.
44:27
Speaker A
Vamos analisar o que tem aqui dentro. A gente tem um comando digite sair para encerrar.
44:34
Speaker A
E aqui a gente verifica se o comando é se o comando for sair, eh, se o input do usuário for igual a sair, a gente usa igual a igual. A gente printa encerrando o programa e dá esse break.
44:49
Speaker A
Eh, se não se não acontecer isso, você simplesmente pinta, você digitou comando. Esse brick aqui eu não me lembro da gente ter passado por eu lembro da gente ter passado por cima na última aula, só que basicamente o que acontece, a gente
45:05
Speaker A
tem esses loops aqui que tem o for, tem o while, tem outras estruturas. O que acontece é que quando você coloca esse break dentro de uma estrutura de repetição, eh, quando ele chega nele, o, a sua estrutura, independentemente da,
45:21
Speaker A
da, da variável aqui da verificação, ele simplesmente para e começa a executar o código logo abaixo. Então, eu vou colocar aqui print and break logo abaixo.
45:38
Speaker A
Então vamos testar esse, vamos testar esse programa aqui, ó. Eu posso digitar qualquer coisa.
45:49
Speaker A
Você digitou qualquer coisa e ele vai continuar repetindo, mas a partir do momento que o digitar sair, ele vai entrar nesse if, vai verificar que o comando foi igual sair e vai printar e dar break.
46:06
Speaker A
deu break, ou seja, o IO foi interrompido. E já que a gente tem uma variável true aqui, eh, que não é alterada dentro do IO, eh, essa esse código vai ser executado para sempre até eu ou fazer o
46:22
Speaker A
encerramento forçado aqui no meu ambiente ou o digitar sair. Legal. H ah, tá aqui. Vamos fazer um problema do Big Crowd. É, tem um problema nos slides que eu vou passar por cima, mas esse é um esse é um exemplo que dá para
46:48
Speaker A
fazer com for. Se vocês fossem fazer com for, ia ficar mais ou menos for e for em ine de um até 100 do daí ia ficar print ã i seria basicamente isso aqui no IO a gente tem como fazer também. Primeiro a
47:13
Speaker A
gente inicia o número um, que é o valor inicial, e depois a gente dá o nosso, opa, aqui é 101. E depois a gente dá a nossa eh condição. Enquanto o número for menor ou igual a 100, a gente eh printa
47:30
Speaker A
se ele for eh par. Esse é um problema do BCOD que basicamente se eh que basicamente questiona, você conseguiria escrever um código que digitasse todos os números de um até 100, inclusive o 100 por linha, um por linha.
47:48
Speaker A
Eh, um jeito de fazer que sem estruturas de repetição, e é por isso que elas são tão importantes, seria fazer print um, eh print print 4, print se, só que isso não, isso aqui seria impossível eh em um em um
48:04
Speaker A
código real, no mundo real. Então, a gente utiliza as as estruturas de repetição. A gente pega o número, inicia esse wi e toda vez aqui, tá vendo essa verificação, a gente lembra do operador de módulo por dois. Então aqui é verificação se o
48:24
Speaker A
número é par. a gente pode printar esse número. Se a gente for executar o programa, a gente pode ver que todos os números pares, dois até o 100, são eh são de são incluídos por linha.
48:47
Speaker A
Aqui a gente não necessariamente precisa fazer esse if. Tá vendo que aqui a gente tá incrementando o número? Isso aqui é a mesma coisa de número igual a número mais 1, certo?
49:00
Speaker A
Eh, só que em vez da gente, em vez da gente fazer essa verificação toda vez, porque ela custa alguma coisa pro computador, eh, o computador precisa parar e pensar se o número é divisível por dois ou não. O que a gente pode
49:16
Speaker A
fazer ao invés disso é iniciar o número como dois e número igual a número mais 2.
49:24
Speaker A
Isso aqui é basicamente a mesma coisa de fazer o for o for i in range 2 101 2.
49:39
Speaker A
Vou até colocar os dois lado a lado pra gente fazer aqui. É o nosso for que ele pinta do dois até o 100.
49:53
Speaker A
E esse aqui de cima é o nosso que printa do do até o 100. Os dois fazem basicamente a mesma coisa. São só jeitos diferentes da gente expressar a mesma operação computacional.
50:10
Speaker A
Legal. Ah, deixa eu ver qual que é o próximo slide. Uhum. Uhum. Tá. Vou passar mais alguns exemplos de wh.
50:23
Speaker A
Ahã. Vamos aqui eh pegar o uma lista que nem o Antônio mostrou. A gente tem uma lista aqui com frutas dessa vez e a gente tem um wi aqui dentro.
50:39
Speaker A
Eh, basicamente tem o iniciamento, a [limpando a garganta] gente inicia como zero e a gente faz a verificação. Enquanto o I for menor que o len de frutas, basicamente esse len o que ele faz? A gente tem essa,
50:57
Speaker A
a gente tem essa lista e dá para ver que a gente tem uma quantidade fixa de elementos. Então, a gente tem maçã, banana, uva e manga. A gente tem quatro elementos aqui. Então, o len retornaria três, por que não quatro? Eh, na verdade
51:14
Speaker A
não, quatro, ele tornaria quatro, eh, porque tem quatro elementos aqui. O problema é que em comput na nas maioria das linguagens de computação, a gente acessa o primeiro elemento como zero, que eh que nem o Antônio mostrou, teve
51:28
Speaker A
uma teve um uma coisa no for e sobre isso também. Então a gente tem que iniciar aqui igual a zero. Se a gente colocasse aqui menor igual, ah, o a gente permitiria que o i fosse igual a 4. Se a gente for verificar
51:44
Speaker A
aqui, maçã é zero, banana é um, uva é dois, manga é três. E quando o i virasse quatro, a gente não teria elemento e daria erro.
51:54
Speaker A
Então vamos ter desse jeito. A gente tem a verificação. Enquanto o I estiver dentro do lenf de frutas, a gente executa esse comando que basicamente vai printar a fruta.
52:07
Speaker A
Fruta, tanã e frutas. Aqui é o jeito da gente acessar a fruta daquela casa. Então, vamos supor aqui que o I fosse zero. Quando a gente executa, a gente pega a lista frutas e acessa a casa zero, que no caso seria
52:27
Speaker A
maçã. Depois de executar esse print, a gente vai aqui para baixo e percebe que é i igual a I + 1.
52:36
Speaker A
Isso incrementa o i. E a gente pode verificar aqui em cima que um é menor que 4. Então a gente continua executando e pinta fruta e fruta dois pontos e a fruta na casa um, que nesse caso seria
52:50
Speaker A
banana. A gente verificar aqui fim da lista. Eh, e quando o vou até fazer um print f daí a gente faz isso aqui. Opa, pera aí.
53:24
Speaker A
Aqui a gente pode visualizar de jeito melhor. É fruta zero, maçã. Opa, aqui. Pronto. I 0 fruta zero. I1 fruta 1 e 2 fruta 3. E aqui se a gente printar o i fora eh fora do, se a gente printasse o I fora, ele seria
53:58
Speaker A
quatro. Ah, legal. Vamos para outro exemplo do Vamos para outro exemplo de lista de while. Ah, só uma coisa, eh, se a gente removesse isso aqui, a gente não incrementaria o I.
54:14
Speaker A
E nesse caso, se eu fosse executar o programa aqui, ã, while lista, o programa ia continuar para sempre, porque essa condição seria sempre verdadeira, já que a gente não tá mudando o I. Então, seria basicamente a mesma coisa que ou true.
54:35
Speaker A
Aqui a gente tem uma aqui a gente tem uma eh uma pilha de louça, vamos supor, prato um, prato dois, prato três, prato 4. A gente tem de novo a execução do da verificação, né? Então, enquanto a enquanto o lenf, ou seja, o tamanho
54:54
Speaker A
dessa lista for maior que zero, a gente executa o código, o código que tá aqui dentro, prata atual igual pilhaadepratos.Ppop.
55:04
Speaker A
A gente não passou eh o conteúdo sobre pop, mas basicamente o que ela faz é que ela pega o último elemento e eh tira ele da lista. Então, se a gente for executar o, se a gente for executar o código, a
55:29
Speaker A
gente vai ver que ele primeiro lava o prato quatro, printa isso e depois eh executa de novo. Prato três, prato 2 e prato um. Esse pop, ele tira o o último o último item da lista e retorna ele pra
55:45
Speaker A
nossa variável. Depois a gente printa isso e quando a quando o lenf igual a zero, essa condição vai falhar. E quando ela falhar, a gente vai sair do wi e vai aqui para baixo.
56:03
Speaker A
à tá? É isso aí. Eu acho que a gente não vai ter tanto tempo, mas eh vamos passar agora para vamos continuar pros slides agora.
56:20
Speaker A
Hum. Certo. Aqui a gente tem os exemplos. O BCOD é o problema 1059. Se vocês quiserem eh tentar aqui, a gente tem o exemplo do da resolução do código.
56:37
Speaker A
Ah, e aqui a gente vai passar pra função map. Eu vou basicamente a gente vai falar de função eh depois, só que função eh só para resumir bem basicão aqui, depois o Vini vai falar sobre, é um trecho de código
56:55
Speaker A
que você pode chamar e ele vai ser executado no momento que você chama ele, certo? Então, se a gente for ver aqui o exemplo da função map, outra coisa, a gente tem alguns exemplos aqui. Eh, primeiro a gente tem uma lista com nomes
57:22
Speaker A
Ana, Bruno, Carl, Diego. A gente tem a função map aqui, certo? Tá, vamos por partes aqui porque pode parecer difícil, mas eu garanto para vocês que não é tão assim. Primeiro, eh, a função MAP, ela vai receber uma lista,
57:40
Speaker A
então nomes aqui, por exemplo, eh, e ela vai realizar uma função, nesse caso, string upper, strer, para cada item dessa dessa lista.
57:58
Speaker A
Então aqui o que o que o STR upper faz é que ele pega todas as letras de um certo item e transforma eh em caixa alta.
58:11
Speaker A
Então vamos vamos verificar o que acontece quando a gente executa o comando. A gente tem Ana que fica caixa alta, Bruno, Carla e Diego. Ou seja, funcionou. Eh, aqui a gente aqui esse list simplesmente significa que a gente vai pegar o
58:30
Speaker A
resultado dessa do map e tá transformando em uma lista, ou seja, tá transformando em um vetor novamente e colocando numa variável nomes maiúsculos. Depois a gente vai printar aqui certo?
58:44
Speaker A
Ah, passando para as próximas funções. Aqui a gente tem um exemplo de uma função que vocês vão entender depois a sintaxe, mas basicamente ela faz o que o nome indica, ela dobra um número. Então a gente tem aqui um map e a gente tem o
59:00
Speaker A
vetor números, a lista números. Então, eh, o que acontece? Para cada número, a gente vai eh modificar eles dobrando. E depois a gente vai transformar isso numa lista.
59:14
Speaker A
armazenar isso na no vetor dobrados, então printar. Se a gente examinar o resultado, a gente vai ver que fica 10 8 6 4, que são exatamente os números dobrados que a gente examinou aqui.
59:33
Speaker A
aqui eh um dos últimos exemplos, ah, não é um dos últimos exemplos de MAP, especificamente MAP, a gente tem a função float, que essa função float aqui, especificamente, ela vai transformar qualquer input eh em float ou vai tentar fazer. Então, a gente tem
59:53
Speaker A
algumas strings 7,25, 20,00, 10,50. Só que isso, como a gente pode ver, são textos. A gente não pode trabalhar com isso numericamente. Então a gente, se a gente quiser, por exemplo, fazer 7,25 + 20, isso aqui não daria certo, porque
60:10
Speaker A
são ambos textos. O que a gente pode fazer? A gente pega o map e para cada item de preços underline texto, a gente transforma isso em float.
60:22
Speaker A
Float é basicamente os números, eh, só que com casas decimais. E depois a gente transforma isso numa lista e printa. E aqui a gente pode ver que eles não são mais string, certo? Eles são aqui números mesmo.
60:38
Speaker A
Tanto que se eu fizer print ã preços float preços texto, aqui dá para ver a diferença clara. Um está entre aspas simples indicando que é um texto e o outro não tem aspas simples, o que quer dizer que eles são
60:59
Speaker A
números. Ah tá. Vamos paraa próxima pra próxima função. A gente tem a função split, que é, a gente fala que string é um texto. Eu vou fazer essa simplificação aqui. Eh, e a gente vai utilizar o split para separar
61:27
Speaker A
esse texto em partes com base em um delimitador que a gente vai especificar. Se a gente for analisar os exemplos aqui, tem um exemplo nesse mesmo arquivo aqui que a gente tem uma entrada. Essa entrada aqui é diferente dessa aqui, tá
61:51
Speaker A
vendo? aqui eh é uma lista em que tem várias stringzinhas, vários textos diferentes. Essa entrada é uma string e essa é uma string completa, ou seja, não tem uma separação, só que a gente pode fazer a separação dela usando entrada
62:10
Speaker A
psit. Eh, e quando a gente fizer essa entrada ps split, a gente vai receber, deixa eu, split igual.
62:32
Speaker A
Vou fazer esse aqui primeiro. Depois a gente vai aqui pro de baixo. Aqui a gente tem um entradas split.
62:46
Speaker A
A gente tem um texto eh contigo que a gente separa por um, quando a gente não declara isso aqui, ele vai separar os os espaços vazios. Então aqui 4 é é um texto, 8 é um texto, 15 é um texto, 16 é
63:03
Speaker A
um texto, por aí em diante. E quando a gente digita aparece essa lista 4, 8, 16, 23, cada um como seu texto específico. É isso que o split faz.
63:15
Speaker A
Eh, e aqui o que a gente tá usando, a gente tá combinando tanto o split quanto o map e para transformar isso, para transformar essa string inteira em uma lista de números. Lista de números inteira. A primeira a gente faz
63:31
Speaker A
o split para transformar em uma lista de strings, lista de textos. E depois a gente usa o map para indicar que a gente quer transformar essa lista de strings em uma lista de inteiros.
63:46
Speaker A
E depois a gente pode verificar que a gente pode fazer a soma desses valores, que é 66. Se a gente for somar cada um, vai dar 66. Ou seja, a gente transformou em números que a gente consegue fazer
63:57
Speaker A
operações matemáticas. Aqui tem mais alguns exemplos eh de mais alguns exemplos da da função split.
64:09
Speaker A
Deixa eu dar clear aqui. O gato subiu no telhado. Vamos aqui. O o gato subiu no telhado. A gente explita aqui. Como eu falei, a gente não, quando a gente não declara, ele vai separar os espaços vazios aqui. Ele vai
64:29
Speaker A
separar por palavras mesmo. Aqui a gente printa as palavras, que é a lista resultante, e a quantidade de palavras que tem aqui. Eh, a gente tem ah uma linha é separada por vírgula. Então, Felipe 23, São Carlos.
64:49
Speaker A
Quando a gente quer fazer um split alguém tuou a mão. É que a gente tem uma pergunta Uhum.
64:56
Speaker A
Do Vinícius também. O MP interfere em casa item da lista? Podemos alterar o tipo cada item da lista.
65:04
Speaker A
Sim, sim. O map itera cada item da lista. Não sei se foi a pergunta. Deixa eu ver aqui no chat. O map interfere em casa e da listo alterar o tipo? Sim, pode alterar o tipo aqui, ó.
65:19
Speaker A
Aqui. Ah, cadê? Cadê? Cadê? Aqui. A gente transforma uma string e 10,5 em float.
65:29
Speaker A
Essa é a função que transforma string em float, por exemplo, transforma no tipo float. Daí cada tipo desse aqui vai virar tipo float, certinho?
65:39
Speaker A
Ah, onde que eu tava? Aí aqui a gente não tá separando por texto, a gente tá separando por espaço vazio, a gente tá separando por vírgula. Então a gente vai dar split vírgula.
65:52
Speaker A
Aqui a gente pode ver Felipe 23, São Carlos. Se a gente mudasse isso aqui e não declarasse, rodasse de novo o programa, dá para ver que isso tudo seria eh tá meio confuso, só que aqui, pera aí, aqui Felipe 23, São Carlos. aqui. Isso
66:18
Speaker A
aqui, eh, não sei se dá para ver, mas isso é uma string inteira, tipo, eh, é uma string só, porque a gente mudou o parâmetro que a gente utiliza para separar as palavras.
66:33
Speaker A
Aqui, se a gente, por exemplo, quiser separar o dia do mês e do ano de uma data que a gente explicita assim, a gente pode dar o split por essa barrinha.
66:43
Speaker A
Daí a gente pode eh ainda colocar dia, mês e ano. Essas aqui são variáveis. Eh, a gente a gente dá split nisso aqui. Deixa eu, ã, putz. Datas igualdata. Split. Esse aqui.
67:06
Speaker A
Vamos print datas. Aqui, ó, a gente tem 16, 9 e 26, que são as strings que a gente separou pela barrinha, mas eh a gente também pode fazer variáveis separadas. Tá vendo que aqui a gente sempre vai ter três campos, eh,
67:28
Speaker A
sempre vai ser dia, mês e ano. O que a gente pode fazer é de a gente declara três variáveis e cada variável vai receber um valor de quando o split foi feito. Então aqui a gente tem três, aqui
67:39
Speaker A
a gente tem três eh três itens na nossa lista. O item zero vai receber dia, o mês vai receber o item um e o ano vai receber o item dois. Depois a gente pode printar isso separadamente aqui.
67:55
Speaker A
Bem legal. Ah, aqui são mais alguns exemplos. Nossa, é mais alguns exemplos de como o split pode funcionar aqui. Chave valor extra é separado por igual. Se a gente for ver aqui, chave valor extra. A única coisa é que aqui a gente pode mandar um
68:14
Speaker A
segundo valor pro split. Aqui, se a gente coloca um, vocês podem ver que a gente separa o primeiro valor aqui no igual, só que o segundo ele simplesmente ignora valor igual extra. A gente não tá separando pelo igual, que
68:31
Speaker A
nem a gente explicitou aqui. Isso acontece porque eu coloquei um. Esse um vai indicar que eu só quero fazer o split na primeira chave que ele encontrar, ou seja, na no primeiro primeira ocorrência desse caracter. Se eu colocar aqui dois,
68:48
Speaker A
executar de novo, a gente pode ver chave valor extra vai tá separado. A gente pode fazer split por breakine.
68:59
Speaker A
Ah, e aqui dá para ver o split sem argumentos, sem passar nada, que ele tá que ele separa por espaços ainda, mesmo que sejam vários espaços, não precisa ser só um, tá?
69:14
Speaker A
Vamos paraa próxima que tá acabando o tempo. Vou tentar correr um pouquinho. Ah, tem esse exercício três que a gente que a gente vai é, não sei. Esse exercício três é, eu acho que eu vou pular, mas basicamente
69:34
Speaker A
se vocês quiserem fazer é o exercício 1040 do BCOD. Ah, o problema desse desse exercício aqui é que ele não necessariamente precisa do de while, nem de map, nem de split. Então, dá para passar, mas se vocês sentirem interesse,
69:49
Speaker A
vocês podem fazer ele depois. Aqui tá o aqui tá o código, a resolução. E creio que seja isso, pessoal. Muito obrigado pelo tempo de vocês.
70:07
Speaker A
Agora eu acho que o Vinícius vai continuar falando sobre as funções. Eh, boa noite, gente. Eu acho que melhor, perdão, [limpando a garganta] eu acho melhor a gente dar um intervalinho antes de 5 minutos para todo mundo levantar ir no banheiro,
70:24
Speaker A
beber uma água. Pode ser, gente. Então, lá para 8:15, 8:16 a gente tá de volta aqui, pessoal.
70:55
Speaker A
Pessoal, para quem continuou na chamada, a palavra-chave de hoje é panda 2, tá tudo maiúsculo, tudo junto.
75:27
Speaker A
Boa noite, gente. É, voltando aqui então pra gente dar [limpando a garganta] continuidade na nossa aula, eu vou apresentar tela aqui.
75:48
Speaker A
Tá dando para ver aí, gente? Ah, deixa eu ver. Tá aqui. Venit tá dando para ver sim. É que o a transmissão tem um delayzinho.
76:13
Speaker A
Perfeito. Eh, então aqui voltando agora nosso assunto que é Python, aqui vai ser o último segmento de conteúdo para vocês que eu vou falar sobre funções. Então, [limpando a garganta] o Felipe agora a pouco ele já deu um preâmbulo, ele já
76:27
Speaker A
falou um pouquinho sobre funções e aqui eu vou continuar e vou formalizar esse conhecimento para vocês. Então, o que são funções? a gente pode ter defunções como um passo a passo que a gente vai ensinar o computador a fazer. Então, assim como
76:42
Speaker A
a gente sempre que a gente escreve qualquer programa em Python, qualquer linguagem de programação, a gente sempre dá um passo a passo para ele. Aqui nas funções, a gente vai fazer um passo a passo que a gente pode chamar
76:52
Speaker A
várias vezes, quantas vezes a gente quiser, em momentos diferentes do nosso código. Então, entendam funções como um conjunto de passos que a gente ensina o nosso computador a fazer e a gente chama quando a gente quiser. Então, exemplos de funções, como seriam funções
77:08
Speaker A
do mundo real, por exemplo, eh, a gente pode falar, por exemplo, que não sei que que você fez hoje de manhã, eu escovei o dente. Perfeito. Se quando alguém fala, eu escovei o dente, você entende perfeitamente o que isso quis dizer. Mas
77:21
Speaker A
aí se você fosse detalhar cada passo a passo de você escovar o dente, eu fui no banheiro, eu peguei a escova, eu peguei a pasta, eu abri a pasta, eu passei a escova, a pasta na escova, aí eu fechei
77:33
Speaker A
a pasta, aí eu abri a torneira, aí eu coloquei a água na escova, aí eu fechei a torneira, escovei o dente. Então são muitos passos e você simplesmente, se você falar eu escovei o dente, todos esses passos que vocês que a gente deu e
77:45
Speaker A
que eu expliquei aqui, todos eles estão implícitos. Então o que a gente vai fazer quando a gente criar uma função, a gente vai dar um passo a passo complexo pro nosso código, pro nosso computador e depois quando a gente quiser usar esse
77:57
Speaker A
passo a passo, a gente vai chamar ele de modo simples. Do mesmo modo que se alguém perguntar o que você fez hoje, você falar escover o dente, você não vai descrever o passo a passo, desde o zero como você escovou o dente, porque já
78:08
Speaker A
fica implícito. [limpando a garganta] Então, em resumo, é isso que as funções funções são.
78:14
Speaker A
Então, a gente tem pode ter vários exemplos de das funções. a gente pode ter, por exemplo, ir no supermercado, eh, limpar casa, fazer arroz, desenhar uma lâmpada, trocar uma lâmpada. Eh, então, vários exemplos da vida real que a gente
78:29
Speaker A
pode tratar eles como funções, como conjunto de passo que a gente faz constantemente, muitas vezes ao dia. E pro computador, qual seriam possíveis funções que a gente poderia ter? Por exemplo, é pegar o número do usuário, calcular um valor, é fazer uma
78:43
Speaker A
verificação, imprimer água na tela. Tudo são funções que são coisas que a gente faz direto no nosso código e a gente quer fazer elas da maneira mais eficiente, mais rápido possível.
78:54
Speaker A
Então aqui, assim como eu dei o exemplo de escovar o dente para ser uma função que a gente faz no mundo real, eh a gente tem, [limpando a garganta] por exemplo, cortar uma maçã também pode ser tratado como uma função no mundo
79:06
Speaker A
real nesse jeito. Então aqui a gente tem o nosso algoritmo para cortar uma maçã.
79:10
Speaker A
A gente pega uma faca, a gente segura, segura a massa com a das mãos, utilizando a ponta afiada da faca, a gente alinha a faca com o meio da maçã, a gente força contra a maçã até que atinge o final dela. E todo isso é um
79:26
Speaker A
passo a passo válido de como você cortar uma maçã. Mas se você perguntar para uma pessoa eh que você tava fazendo a pessoa fala cortar, tava cortando uma maçã, você vai entender, subentender que ela já fez todos esses passos antes. Então
79:38
Speaker A
ela fala que ela cortou uma maçã e já erou bastante para você. Então aqui mais um exemplo de funciona muito real aqui.
79:46
Speaker A
Agora eu vou vou passar pro online GTB para já começar com código. Perfeito. Eh, se o tamanho da letra tiver ruim, vocês avisem no chat, viu, gente? Ou qualquer dúvida que vocês tiverem também, fique à vontade para perguntar.
80:26
Speaker A
[limpando a garganta] Eh, agora vamos falar sobre funções agora em Python. Mas fale que Mas antes de falar de funções, vamos só uma visãozinha rápida, imaginar um código, imaginar um problema que a gente vai resolver para depois aplicar funções
80:38
Speaker A
sobre esse problema pra gente ver o quão poderosas elas é elas são. Então esquece funções por momento. Vamos fazer um código simples. Quero, por exemplo, um código que verifique se uma pessoa é maior ou menor de idade. Eh, como a
80:50
Speaker A
gente pode fazer esse código? É de modo bem simples. A gente pode começar criando uma variável idade e a gente vai receber o input do usuário nesse idade. Então vou pular aqui usuário, digite a sua idade.
81:06
Speaker A
Aí ele espera receber o número inteiro. Então a gente avisa pro Python que a gente vai receber o número inteiro aqui, colocando em ao redor.
81:15
Speaker A
E assim como a gente aprendeu na aula passada, vamos usar uma estrutura condicional que é o if. Então eu vou ver if, ou seja, se a minha idade for maior ou igual a 18 anos. É, eu não acho que
81:30
Speaker A
eu não falei o problema, gente. Eh, a gente vai, o problema que eu tentando resolver aqui é verificar se uma pessoa é maior ou menor de idade. É isso. E a gente vai verificar aqui, a gente vai pegar a idade da pessoa, o input dela
81:44
Speaker A
com essa mensagem. Então vai aparecer aqui no terminal, digite sua idade e isso vai se perceber o inteiro.
81:49
Speaker A
[limpando a garganta] A gente vai verificar com a estrutura de condicional se essa idade é maior ou menor que 18.
81:54
Speaker A
Então se a idade for maior ou igual que 18, a gente vai printar você é maior de idade.
82:05
Speaker A
OK? E else. Se a se, ou seja, se a idade for menor que 18, a gente vai printar.
82:17
Speaker A
você é menor de idade. Então vamos ver se nos código tá funcionando. Opa falta tô dois pontos do aqui. Esqueci desse dois pontos aqui. sua idade. Então aqui eu posso colocar que eu tenho 30 anos.
82:54
Speaker A
Parece aqui você é maior de idade. Perfeito. Se eu vou andar de novo e colocar que eu tenho só 3 anos, por exemplo.
83:05
Speaker A
É online GDB tá devagar. de novo. 3 anos você é menor de idade. Então nosso tá funcionando, a gente resolveu nosso problema. A gente consegue identificar se uma pessoa é maior ou menor de idade.
83:23
Speaker A
Só que agora vamos supor que eu quero durante o meu código verificar isso muitas vezes. Muitas vezes. Então, por exemplo, quero verificar cinco vezes.
83:31
Speaker A
Eh, como é que a gente poderia fazer isso? Eh, vocês podem pensar, é só a gente repetir esse trecho de código muitas vezes. É uma ideia válida. Então, eu posso aqui copiar tudo. Eu vou colar aqui mais quatro vezes. 1 2 3.
83:47
Speaker A
Perfeito. Então, aqui eu consigo verificar se cinco pessoas são maiores ou menores de idade. Só que observe como isso já ficou confuso, porque ano que antes era cinco linhazinhas, tranquilo, já virou 30.
84:03
Speaker A
E é muito confuso isso aqui porque é difícil você ler eh se você tá vendo esse código outra pessoa tá vendo esse código que você fez. Olha que confuso.
84:10
Speaker A
Muita coisa na tela. Então é confuso. Então tem alternativas melhores. Vocês podem pensar. Hum. Outra alternativa é usar a estrutura de repetição, os loops, que foi o que o Antônio e o Felipe passaram agora a pouco. Por exemplo, a gente usa o for
84:27
Speaker A
for for. A gente coloca todo esse bloco aqui. Só arrumar aação aqui. A gente coloca todo esse bloco dentro do for e ele vai repetir cinco vezes aqui.
84:57
Speaker A
Então a gente vai dar de 1 2 3 4 5. Perfeito. Ele rodou cinco vezes. E aqui eu só tô usando seis linhas. Então, já tá bem melhor do que tava antes. Mas agora vamos supor que eu não queira
85:11
Speaker A
pegar essa idade dos usuários seguida. Aqui, por exemplo, eu acabo de pegar idade de um usuário, ele já quer saber a idade do outro já direto, que é eh isso faz parte da da natureza, né, da estrutura de repetição.
85:25
Speaker A
Mas eu vou supor que eu quero calcular hã quero calcular, opa, eu quero calcular uma idade aqui. Aí aqui vai ter um trecho de código no lugar desse ter um trecho de código.
85:43
Speaker A
Embaixo eu quero calcular outra idade. Aí vai ter o terce de código. A aqui eu quero calcular duas idades. Aí aqui vai ter o ter de código. Então de novo, ficou muito confuso porque você vai ter muitas linhas e vai estar mais confuso
85:57
Speaker A
ainda porque se você vai ter no meio entre essas coletas de idade dádio você vai ter outros trechos de código.
86:04
Speaker A
Então, tudo ruim, [risadas] tudo mal organizado. Então, as funções vem a partir daí pra gente conseguir organizar melhor nosso código. Outro outro defeito, outra coisa ruim da gente fazer essa estratégia que é, vou voltar aqui e colocar várias
86:22
Speaker A
vários códigos aqui. Por exemplo, vamos supor que deu a louca no governo e agora você ser considerado maior de idade no Brasil você tem que ter 21 anos. Você tem que querer que ven aqui no seu código e mudar aqui 18 para 21.
86:36
Speaker A
E você teria que fazer isso em todos os lugares. Aqui, aqui que isso já já dá um trabalho, né?
86:44
Speaker A
E você pode, por exemplo, porque você é ser humano, nós somos seres humanos, todo mundo erra. E você pode simplesmente esquecer mais algum lugar seu código de trocar esse 18 para 21, que nem eu esqueci aqui.
86:55
Speaker A
E aí isso vai gerar um bug no seu código, então vai gerar um comportamento inesperado. Então para você descobrir que você esqueceu de trocar esse 18 por 21 em algum lugar vai muito tempo de procura isso se você descobrir que tá
87:06
Speaker A
errado. Então para você fazer qualquer alteração no seu trecho de código, dá muito trabalho.
87:13
Speaker A
Então aqui mais um defes você colocar só esse amontoado de código. E aí agora de novo vou voltar a falar das funções que vem para resolver esse problema.
87:24
Speaker A
E agora, como é que a gente declara uma função importa? Eh, eu quero, por exemplo, declarar essa função que resolve esse mesmo problema que eu tô resolvendo aqui, que é o problema de frecância aqui, ó, se alguém é maior ou
87:36
Speaker A
menor de idade. Então, eu vou escrever a primeira linha aqui, eu vou passar explicando tudo depois.
87:51
Speaker A
Então isso aqui é a primeira linha quando a gente quer declarar uma função. O que que é declarar uma função? O que que é declarar? Você tá falando computador, existe essa função aqui e eu posso chamar ela quando eu quiser. É
88:03
Speaker A
isso que eu tô fazendo. Então a gente fala que isso é uma definição de função.
88:07
Speaker A
Esse aqui def é a palavrachave pra gente definir uma função. E def, ele vem realmente de definir. Então a gente tá falando computador, a gente vai definir uma função.
88:17
Speaker A
Esse verifica a maioridade é o nome da nossa função. Ele poderia ser qualquer nome. poderia ser a, poderia ser nome, poderia ser praticamente qualquer coisa.
88:29
Speaker A
Ele segue aquela mesmas, aquelas mesmas regrinhas que a gente passou na aula passada de nome de variável. Então, não pode começar com número, por exemplo, nome de função, não pode ter caracter especial, não pode ter palavra reservada, tipo if, assim, espaço, não
88:44
Speaker A
pode ter espaço, pode ter tipo nome, nome a a não pode ter espaço. Então, mas no geral, eh, seguindo as mesmas regras de variáveis, pode ter qualquer nome que a gente quiser, mas é uma boa prática a gente ter um nome que identifica o que a
89:00
Speaker A
nossa função faz. Então a nossa função que quer verificar se que é maior, menor de idade, vai chamar verifica.
89:08
Speaker A
Verifica. Levantaram a mão aí? Não, não. Só o Antônio que entrou. Ah, ok. Elefica maioridade.
89:27
Speaker A
Eh, perfeito. Esse aqui é o nome da nossa função e eu quero precisar agora de um trecho de código que identifique se alguém é maior ou menor de idade. Eu já tenho esse trecho de código, que é o que eu
89:37
Speaker A
tinha feito. Ele serve ainda. E eu vou colocar esse trecho de código dentro da função. E assim como no if, assim como nas estruturas de repetição, como o IO e o for, como é que o nosso computador sabe o que tá dentro da função e o que
89:51
Speaker A
tá fora da função? É por causa desse espaço aqui, dessa tabulação que a gente fala dessa todos esses as ABS que eu tô colocando aqui tá dentro da função porque eles estão com esse espacinho para dentro.
90:05
Speaker A
Mas esse B aqui, opa, esse várias coisas, vários Bs que estão aqui fora, isso aqui já tá fora da minha função porque ele já tá colado nessa margem.
90:16
Speaker A
Essa é a mesma lógica do resto. Voltando agora pro nosso trecho de código. Eu vou dentar ele para ele ficar inteiro dentro da outra função.
90:28
Speaker A
Perfeito. Aqui eu aquele três códig que a gente já sabe, a gente tem a nossa função declarada. Então, quando a gente quiser descobrir se alguém é maior ou menor de idade, a gente tem que simplesmente agora chamar essa função.
90:40
Speaker A
Então, se eu der run aqui, ele não vai acontecer nada. Por quê? Como eu falei aqui, a gente só tá definindo uma função. Então, a gente tá falando, computador, se a gente precisar verificar a maioridade e alguém chamar
90:51
Speaker A
verifica a maioridade, é aqui que você vai vir buscar o código. Mas a questão é que ninguém chamou verifica a maioridade, então a gente tem que chamar ele. Como é que a gente chama alguém? 21 pelo nome. Então a gente tem que falar,
91:03
Speaker A
colocar aqui, verifica maioridade abrir fecha parênteses. Outra coisa, esse abre fecha parênteses aqui, daqui a pouquinho eu já vou detalhar melhor ele.
91:17
Speaker A
Então para chamar uma função é o nome dela. Abre fecha parênteses. Vou dar run. Vou rodar o meu código. Ele já apareceu aqui para digitar minha idade.
91:26
Speaker A
Posso ficar qu 70 anos. que eu tenho 70 anos. Não, DB tá devagar, tá? Por enquanto eu acreditei em mim aqui que assim a gente tá chamando a função, ele tá chamando esse trecho de código. E então aqui a gente tá chamando
91:52
Speaker A
a função uma vez. Se eu quiser chamar ela cinco vezes, que nem eu tava fazendo antes, é só eu chamar ela cinco vezes, que ela vai vir cinco vezes. Se agora vai deidade 10 anos, por exemplo, eu vou dar aqui, vou atualizar a página,
92:08
Speaker A
gente. Momento. Ah, vamos ver se agora vai idade. É, problemas técnicos aqui. Mas o que que tá acontecendo? Em cada uma dessas linhas aqui, ele vai rodar, verificar maioridade. Então eu vou ter que digitar cinco vezes aqui. Então em
92:56
Speaker A
resumo, isso aqui, esse de código que a gente tá fazendo é um sinônimo, seria igual eu colar isso aqui cinco vezes, seria sinônimo. Essas linhas aqui seria sinônimo de todas essas. Olha como fica mais organizado, olha como fica mais
93:17
Speaker A
fácil de você identificar como as coisas estão funcionando aqui. E outra coisa que nem eu te falar da desvantagem, por exemplo, de o Brasil tinha mudado, agora para você ser maior deitade tem que ter 21 anos, mas agora
93:29
Speaker A
voltou de volta para 18. Se eu quiser mudar isso, é só eu vir aqui trocar esse 21 por 18.
93:36
Speaker A
E agora toda vez que eu, opa, toda vez que eu chamar, verifica a maioridade, ele já vai tá com 18 anos. E se eu mudar aqui para 21 de volta, toda vez que eu chamar fica maioridade, ele já vai estar com 20
93:48
Speaker A
anos. 21 anos. Eu não tenho que mudar isso todos os trechos do meu código. É muito mais simples. Eu mudo em um lugar e eu mudo automaticamente para todos os outros lugares.
93:58
Speaker A
Eh, esse é das grandes vantagens assim da de se utilizar a função. E meio que a sintaxe básica de função é essa, fazer só uma revisão aqui def para você definir uma função. Então você falar compilador estou chamando, estou
94:17
Speaker A
criando uma função. Esse aqui é o nome da função, que pode ser praticamente qualquer coisa, tirando aquelas restrições que eu já falei. Aí vai ter um abre, fecha parênteses, que eu já vou explicar o dois pontos. Aí tudo, todo
94:29
Speaker A
trade que você quiser, que esteja dentro da função, vai est dentado, então ele vai est um pouquinho para dentro. E se eu quiser chamar a minha função, eu tenho que chamar ela pelo nome. Verifica maioridade. E aqui eu chamei, eu posso
94:41
Speaker A
chamar ela quantas vezes eu quiser desse jeito. Eh, OK. Agora vamos dar um upgrade, vamos dar uma melhorada na nossa função.
94:51
Speaker A
Vamos supor que agora eu queira saber a idade de uma pessoa específica. Por exemplo, eu quero saber a idade do Antônio. Se eu quiser saber a idade do Antônio, eu vou falar que eu quero saber a idade dele pro pro meu usuário. Então
95:05
Speaker A
eu vou trocar esse texto aqui para digite a idade de Anton. E aqui eu vou trocar aqui, vou falar aqui Antônio é maior de idade ou Antônio é menor de idade.
95:31
Speaker A
Tá, vamos ver, vamos ver se vai agora online de DB. foi aí eh falar que o Antônio tem 10 anos, uma criança. Eh, vou dar enter Antônio é menor de idade. Perfeito, Antônio, escrevi errado, perdão.
95:56
Speaker A
Eh, Antônio menor de idade. Perfeito. Mas agora no mesmo código eu quero saber. Opa.
96:03
Speaker A
Eu quero saber, por exemplo, se a Catarina é maior ou menor de idade. Para fazer isso, eu vou ter que mudar na minha função aqui. Vou ter que trocar todos os lugares que tem Antônio, colocar Catarina, porque senão você continuar do
96:15
Speaker A
jeito que tá, tô [risadas] Antônio, se eu colocar aqui do jeito que tá, eu vou verificar do Antônio, que a idade que eu quero verificar primeiro.
96:32
Speaker A
E quando eu quiser chamar de saber da Catarina, eu não vou saber porque lá tá escrito Antônio. Então como é que eu resolvo isso?
96:41
Speaker A
Então significa que esse nome seria algo que seria alterável. Então é propenso que nesse momento a gente pensa uma variável, que é uma coisa que varia e a gente pode escolher o valor. Então é muito útil a gente usar uma variável
96:54
Speaker A
aqui. Então vamos supor que eu vou trocar esse nome Antônio ou Catarina pela por uma variável nome. Então eu quero digit a idade T.
97:05
Speaker A
Aqui é uma sx que a gente já usou por aqui. Eu vou relembrar que é esse mais eh nome [limpando a garganta] é uma variável nome que vai guardar o nome de uma pessoa. Esse maisinho aqui. Então que que esse print aqui tá fazendo? Ele
97:19
Speaker A
vai printar primeiro a idade T, tá bom? Aí ele vai que a gente fala que é concatenar. Ele vai concatenar essa string, esse texto com o valor que tá dentro da variável nome.
97:32
Speaker A
[limpando a garganta] E depois dele printar o que tá na variável nome, ele vai printar esse resto de texto. Então, em resumo, é isso que tá fazendo. Bem simples, mas qualquer dúvida lembrei de mandar aí no chat.
97:46
Speaker A
Eh, vou substituir tudo aqui por essa variável nome nome mais texto nome mais o texto. Perfeito. Agora a gente tem que dar um valor para esse nome. Se fosse um código normal, como que a gente faria? a gente fazia tipo
98:03
Speaker A
nome igual, [limpando a garganta] mas aqui a gente tá dando uma função, então a gente pode fazer de uma forma mais eficiente ainda. Eu posso declarar um parâmetro para essa função. O parâmetro que a gente coloca dentro desse parênteses aqui. Então vai ser a
98:19
Speaker A
minha variável nome, ela vai ser um parâmetro. E o que significa a minha variável nome ser um parâmetro?
98:25
Speaker A
Aqui faltou mais. Opa. Minha variável nome seu parâmetro significa que essas chamadas de funções que vão definir o valor dela. Então, se eu quiser que essa primeira chamada seja pro Antônio, eu vou escrever aqui Antônio.
98:42
Speaker A
E se eu quiser que essa segunda chamada aqui seja para Catarina, eh, essa segunda chamada vai chamar a Catarina. Então, nessa primeira vez que o código vai rodar, a variável nome vai ter o valor antônio e a segunda vez que ela rodar, quando
98:59
Speaker A
ela for chamada por essa linha 11, ela vai rodar e a variável nome vai ter o valor do Catarina.
99:07
Speaker A
Então, vamos rodar para ver se beber uma água. Perfeito, [limpando a garganta] perfeito. Aqui cada vez que ele rodou, ele rodou com nome diferente. E assim eu posso fazer muitas vezes. Posso chamar com Antônio de novo. E aqui no carte
99:37
Speaker A
Catarina eu colocar Felipe, por exemplo. Então essa aqui é uma versatilidade a mais que a gente tem com as funções. A gente pode mandar variáveis com valor específico para ela.
99:49
Speaker A
E vamos supor, por exemplo, que além de verificar a maioridade, por algum motivo qualquer, eu quero imprimir o RG dessa pessoa também. Então aqui, antes de tudo, eu vou dar um print no RG da pessoa. E o valor de ORG é uma variável,
100:05
Speaker A
porque ele vai variar de pessoa para pessoa. Eu quero mandar ele de parâmetro. É possível mandar dois parâmetros para uma mesma função? Sim, é só a gente separar eles por vírgula.
100:16
Speaker A
Então aqui tem o primeiro parâmetro nome e aqui a gente vai ter o segundo parâmetro que vai se chamar RG.
100:24
Speaker A
E vamos ver o código como é que tá agora. Se eu rodar ele, o que que vai acontecer?
100:32
Speaker A
[limpando a garganta] Vamos ver qual estatia que ele deu. Lembrando, gente, é muito importante quando der um erro assim, um erro vermelho, alerta no seu terminal, no seu, na sua resposta, do seu código, lê o erro, não custa nada. Às vezes ele vai
100:44
Speaker A
te ajudar a solucionar o problema e entender melhor a linguagem. Então, o que que ele tá falando aqui? Eh, verifica a maioridade, ou seja, a função que eu criei, eh, tá faltando um argumento nela.
100:59
Speaker A
Tem uma pergunta. Não daria para usar lista e if nesse caso. Hum, entendi. Eu a tá falando no caso de eu querer ver a idade de mais de uma pessoa. Tem como sim, tem como eu mandar uma lista como argumento. Eh,
101:19
Speaker A
já já faço esse exemplo já. Eh, tô terminando aqui de falar sobre o erro aqui. Verifica maioridade que a minha função tá falando aqui que que ela tá devendo um argumento. Então, eu esqueci de passar o argumento RG para
101:32
Speaker A
ela. Então, se eu quiser colocar dois parâmetros, eu tenho que passar dois valores. Se eu quiser, por exemplo, passar o RG 1, ele vai printar o RG1, que é o segundo parâmetro.
101:46
Speaker A
Agora aqui, voltando para pra dúvida, eh, se era possível usar lista if. Se eu entendi a pergunta corretamente, é utilizar uma lista para verificar a idade de mais de uma pessoa.
102:00
Speaker A
Isso é possível. Por exemplo, se eu tiver uma lista aqui com Antônio e Catarina, e eu quiser verificar maioridade, eu vou chamar aqui verifica maioridade.
102:24
Speaker A
Eu vou passar uma lista como um argumento para para essa função. Então eu vou passar minha lista aqui e aqui eu vou chamar de lista aqui também. Então vou apagar essa parte do RG.
102:40
Speaker A
E aqui eu teria que modificar esse trecho do código para fazer aqui tipo com for em range for em lista.
103:01
Speaker A
passar tudo aqui para dentro desse forno e no lugar de nome aqui eu vou colocar simplesmente I.
103:15
Speaker A
Esse aqui é uma que o Antônio que falou que é aqui a gente tá nessa lista e cada vez que a gente passar por esse for, um item da lista vai se chamar I por um instante. Então na primeira iteração
103:27
Speaker A
desse for I é igual a Antônio. Na segunda interação desse for I é igual a Catarina.
103:33
Speaker A
E quando a gente o run aqui de idade de Antônio 10. Depois ele já pediu da Catarina.
103:41
Speaker A
Então esse é um jeito, por exemplo, de verificar vários nomes e uma mesma chamada de função. Foi uma, foi uma boa pergunta, mas se não foi isso pergunta, manda de novo no chat aí responder.
103:55
Speaker A
Era isso mesmo. Ai, que bom, fico feliz. Eh, OK. Então, é possível passar qualquer coisa como parâmetro, desde uma lista até como mais de um parâmetro. Quantos parâmetros você quiser?
104:12
Speaker A
Hã, OK. Vou voltar do jeito que tava antes aqui. OK. E agora que eu chamei, agora que eu chamei essa função aqui, vocês conseguem perceber talvez uma semelhança o que vocês já usaram antes.
104:40
Speaker A
Eh, por exemplo, quando a gente chama print, por exemplo, eu quero printar o meu nome na tela, eu quero printar o meu nome na tela, por exemplo, quero printar aquiicius, olha como que eu tô chamando. Olha como como é que eu tô printando. Eu tô
104:55
Speaker A
passando print. que é um nome dentro de parênteses e um argumento que é uma string, que é o que tá entre aspas, mas poderia ser, por exemplo, só um número.
105:06
Speaker A
Observe que o print é então uma função que a gente chama, ou seja, o print tá implementado por alguém. Significa que lá por trás do Python existe algo do tipo def print e um montão de um montão de
105:26
Speaker A
para fazer ele imprimir as coisas na tela. E eu, como um mero usuário, um mero mortal, eu só utilizo essa função que já tá criada, que alguém já criou para mim utilizar.
105:36
Speaker A
Então, print é uma função, tem o input também é uma função. Então, várias dessas coisas que a gente usa em Python são funções pré-prontas que alguém já fez, a gente só se utiliza delas. E olha o comput as outras pessoas
105:52
Speaker A
podem fazer essas funções e a gente também pode fazer as nossas pra gente utilizar do modo como a gente preferir.
105:57
Speaker A
Então é um poder muito legal que a gente tem no Python. eh da as curiosidadezinha, né, que a gente utiliza muitas funções e já já utilizou. Agora a gente vai fazer adicionar mais um poder para nossa função. Mais uma coisa muito importante.
106:13
Speaker A
Observe que, por exemplo, quando eu faço um input, se eu quero, por exemplo, coletar o nome de uma pessoa, eh, nome é igual input aqui.
106:27
Speaker A
Aqui, o que que vai acontecer nesse código? Ele vai ligar, ele vou rodar ele, ele vai chamar input, eu vou digitar um qualquer texto e a variável nome vai armazenar esse texto. Observe que esse input ele tá retornando alguma
106:41
Speaker A
coisa pro meu código, ele não tá simplesmente chamando. Porque, por exemplo, se eu colocar aqui nome, verifica maioridade, por exemplo, e passar aqui qualquer coisa, esse nome aqui vai ficar vazio porque verifica a maioridade não tá retornando nada para ele, mas quando eu colocar
106:59
Speaker A
input ele vai estar retornando alguma coisa. Então agora eu vou passar o conteúdo de fazer uma função retornar algum valor.
107:09
Speaker A
E o exemplo disso, eu vou fazer uma função que ela gera um input pra gente, que ela pega um input de forma mais tranquila pra gente. Eh, vou fazer aqui no comecinho.
107:23
Speaker A
Uma coisa muito satisfatória, gente, pelo menos eu acho satisfatório, é quando eu tô fazendo uma função e a função tá pronta, ela tá funcionando, eu venho aqui, eu clico nessa setinha que todos os interpretadores de P tem assim
107:33
Speaker A
em algum lugar tinha e todo aquele meu código ficou escondido, ficou meu código ficou mais clean, ficou mais limpo, é bem satisfatório.
107:40
Speaker A
E fazer outra função aqui que é a função que é para coletar idade. coleta idade.
107:50
Speaker A
O que que vai ter nessa função? O que que eu quero que essa função faça? Eu quero que ela faça esse trabalho sujo de pegar uma idade e input e coloc fazer tudo isso aqui. Eu quero deixar isso
108:01
Speaker A
ainda mais simples. Então tá, como é que eu vou fazer isso? Acho que para baixo.
108:06
Speaker A
Eu vou coletar a idade. Eu vou chamar uma variável chamada idade e eu vou pegar o input dela. Input. Eu vou colocar uma mensagem, é [limpando a garganta] digite uma idade, por exemplo, é um inteiro, então vou ter que passar
108:28
Speaker A
ao redor. Hum. Tá? E eu quero que essa função ela retorne. Então eu vou usar a palavra-chave return.
108:45
Speaker A
que ela retorne essa idade para ficar funidade completa, que aqui a gente, eu tô passando o nome, né? Eu vou passar o nome com maior parâmetro para ela também. Então vai receber um nome.
108:59
Speaker A
Digite a idade de fechar fechar. E é isso. Aqui eu fiz uma função que ela vai coletar a idade. Então a gente vai passar um nome para ela e ela vai fazer digite a idade taná. E ela vai retornar
109:25
Speaker A
essa idade que ela pegou. E eu posso utilizar essa função para simplificar ainda mais essa minha função verifica maioridade. Tudo bem que aqui já é todo esse código já é feito em uma linha só. Eh, mas é um exemplo que para
109:38
Speaker A
ficar simples para caber no tempo também. Então, talvez não simplifique tanto quanto poderia, mas pegue a ideia, tentei abstrair.
109:45
Speaker A
Eh, eu posso substituir essa linha por uma variável também idade e colocar aqui a idade é igual a coleta idade e eu vou passar o nome.
109:58
Speaker A
Então, o que que tá acontecendo? Eu vou sempre que eu chamar essa minha função verifica a maioridade, ela vai entrar aqui e ela vai chamar a minha outra função que é a função coleta idade. Ah, e a minha função coleta idade vai fazer
110:14
Speaker A
o input para coletar a idade, ela vai retornar essa idade e daí eu vou armazenar essa idade nessa variável.
110:23
Speaker A
Eh, espero que tenha feito sentido aí, gente. Se não fez, por favor, mande no chat.
110:29
Speaker A
[limpando a garganta] Então significa que aqui eu tô usando uma função dentro de outra função e isso é muito comum e a gente pode usar quantas funções dentro de quantas funções a gente quiser. Eh, essa aqui aos códigos são feitos com várias
110:44
Speaker A
funções, dentro de funções, dentro de funções, dentro de funções. E esse aí foi o exemplo, chamar uma função dentro de outra função para para facilitar nossa vida.
110:55
Speaker A
E aqui eu poderia retornar alguma coisa. poderia retornar a idade, poderia retornar o nome, poderia retornar a um valor true, um valor falso. Então você pode retornar qualquer coisa. Poderia retornar uma lista, por exemplo.
111:07
Speaker A
Poderia. Então, para você coletar o que uma função retornou, você vai colocar aqui uma variável igual e depois vai chamar essa função. E esse valor de retorno vai ser o valor que vai ser passado por essa variável aqui.
111:23
Speaker A
Eh, é isso. Eu acho que talvez para finalizar aqui, eh, um exemplo um pouco mais claro de chamar uma função dentro de outra função e o quanto isso nos ajuda. Vou apagar uso de código.
111:37
Speaker A
Esqueçam isso aí de coletar a maioridade. Acabou esse exemplo. Eh, eu quiser, por exemplo, uma função que some dois números.
111:45
Speaker A
Ela vai chamar, por exemplo, soma dois. Soma dois. Eu vou passar um número A e o número B.
111:56
Speaker A
Vígula e ela vai retornar para mim A + B. Perfeito. Se eu rodar aqui vai fazer nada porque eu não chamei a função. Pegadinha aí. Eh, colocar aqui soma dois. Vou chamar a minha função agora. Soma dois.
112:19
Speaker A
E eu vou passar valor para ela. Passar, por exemplo, valor 1 e valor 6.
112:27
Speaker A
E essa função vai me retornar um valor. Então eu posso colocar isso numa variável. Qualquer que eu vou chamar de variável.
112:35
Speaker A
E eu vou printar a variável. Perfeito. Retorno sete. Então o nosso código a gente tá chamando a função soma dois. Tô passando o valor 1 e o valor 6.
112:50
Speaker A
E aqui ela tá executando essa soma, tá retornando o valor dessa soma. Aí o valor dessa soma tá sendo armazenado e variável e eu tô printando variável.
112:59
Speaker A
Outro modo de fazer essa mesma coisa seria eu só colocando esse soma aqui dentro do meu print.
113:10
Speaker A
Então eu tô chamando dentro do print eu tô somando soma mais o exemplo de uma função dentro da outra.
113:19
Speaker A
7. Perfeito. Mas agora eu quero chamar uma função que se chama soma três. Eu vou só voltar aqui do jeito que tava.
113:26
Speaker A
Acho que fica mais bonitinho, fica mais explicativo. OK. Agora eu quero chamar uma soma três que ela some três números.
113:39
Speaker A
Eh, um modo de eu fazer isso, eu posso usar o soma do para facilitar o meu soma 3. Então eu posso fazer, por exemplo, soma 3.
113:54
Speaker A
Soma três tem que ter três valores porque eu vou somar três números. Então, A B C.
114:04
Speaker A
E eu posso só soma do soma 3. Como é que eu faria isso? Eh, ela vai retornar, vou colocar aqui para retornar dentro de uma variável também, dentro de X, por exemplo, X. Ah, [limpando a garganta] ela vai dar
114:20
Speaker A
um retorn X depois. X vai ser igual a soma 2. Eu vou passar soma do com valor de A e B.
114:30
Speaker A
aqui, só que tá faltando um valor. Para fazer isso, eu posso chamar outros somadores.
114:41
Speaker A
Então, vou explicar o que que tá acontecendo aqui. Até espa que que eu tô chamando eu que tô querendo uma função para chamar, para somar três números. uma alternativa de fazer isso, ao invés de fazer a + b + c,
114:55
Speaker A
por exemplo, eh, usa uma função dentro de outra função. Então, eu vou entrar nesse valor x e esse valor x vai ser atribuído com a soma de a b. Como é que eu tô fazendo essa soma? Eu tô chamando soma do E
115:10
Speaker A
quais valores esse soma dois de fora vai somar? Ela vai somar a soma do entre A e B e o valor de C. Então ele vai chamar soma dois, vai entrar dentro de soma do e aqui ele vai chamar outro soma dois. É
115:24
Speaker A
bem inception, é uma coisa dentro da outra. Eh, a gente chama isso de recursão.
115:30
Speaker A
Normalmente aqui é só uma palinha, só o básico para vocês verem, vocês não assustarem. Eh, uma dia a gente tá usando uma função dentar outra. Então, explicando aqui a última vez, a gente vai retornar o valor de x e pra gente
115:41
Speaker A
calcular essa soma de três números, a gente vai usar soma dois. E quais dois valores esse soma dois de fora vai somar? Ele vai somar a soma entre A e B e o valor C. Então, se eu chamar aqui
115:55
Speaker A
soma 3 com 1, 6 e 10, por exemplo, vou dar run, ele vai me dar isso agora 17. [limpando a garganta] Eh, que eu tinha para falar de funções para vocês. É isso, gente. Eh, eu não fiquei muito tempo aqui nos slides porque eu
116:13
Speaker A
acho que principalmente essa parte de função é mais produtivo fazer vários exemplos e dar ênfase na sintaxe os possíveis erros que podem dar. Por exemplo, se eu esquecer de passar esse 10 aqui pro soma 3, ele vai dar um erro
116:26
Speaker A
porque vai falar que soma três tá faltando um argumento C dela que eu não passei, eu só passei dois e por aí vai.
116:33
Speaker A
Mas o conteúo que eu passei aqui é idêntico ao que tá nos slides, que vai ser disponibilizado na collection para vocês depois. Então se preocupem quanto a isso, eu não mostrei os slides, mas o que eu passei aqui é o que tá nos
116:44
Speaker A
slides. E é isso, o conteúdo de de Python que a gente do PET ia dar para vocês, ia menitar para vocês. Espero que tenha sido proveitoso. Espero que quem já sabia um pouquinho tenha conseguido relembrar. que não sabia nada tem saído
117:00
Speaker A
desse zero para terimento básico. E agradecemos a presença de vocês. Agradecer Panda também por ter pela oportunidade de a gente de essa aula.
117:11
Speaker A
Sempre um prazer. Não sei se vocês quiserem dar algumas palavras também. Muito obrigado a todos. Cheg também.
117:19
Speaker A
É, pessoal, tem alguma dúvida, alguma pergunta final para fazer pro Vinícius? Só esperar um pouquinho aqui dentro.
117:49
Speaker A
Bem, aparentemente não. Bem, obrigado, Vinícius. Obrigado, Antônio. Obrigado vocês, pessoal do PET, por prestigiar a gente e dar essas aulas de introdução de Python. E obrigado também a todo mundo que acompanhou as a aula de hoje e a
118:07
Speaker A
gente se vê semana que vem paraas começar as aulas de introdução estatística. Obrigado pessoal, boa noite para todo mundo.
118:17
Speaker A
Obrigado pessoal. Até mais. para a transmissão. Boa noite, gente. Prontinho. [limpando a garganta] Obrigado.
Topics:PythonloopsforwhilerangefunçõesprogramaçãoiniciantesPET BCCUFSCar

Get More with the SozAI App

Transcribe recordings, audio files, and YouTube videos — with AI summaries and speaker detection. 30 minutes free.

Or transcribe another YouTube video here →