[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:07.99,0:00:10.58,Default,,0000,0000,0000,,Quando a gente está implementando\Nalguma coisa nova, Dialogue: 0,0:00:10.58,0:00:13.17,Default,,0000,0000,0000,,a gente nunca constrói \Ntudo do zero. Dialogue: 0,0:00:13.17,0:00:15.23,Default,,0000,0000,0000,,Então, nessa brincadeira \Nde reaproveitar Dialogue: 0,0:00:15.23,0:00:16.44,Default,,0000,0000,0000,,o que já está feito, Dialogue: 0,0:00:16.44,0:00:18.23,Default,,0000,0000,0000,,a gente começa a conversar sobre\Nfunção nativa para cá e para lá, Dialogue: 0,0:00:18.23,0:00:22.35,Default,,0000,0000,0000,,e agora finalmente chegou\No momento da gente entender Dialogue: 0,0:00:22.35,0:00:23.50,Default,,0000,0000,0000,,o que são funções,\Npara que servem Dialogue: 0,0:00:23.50,0:00:25.39,Default,,0000,0000,0000,,e construir a nossa primeira. Dialogue: 0,0:00:25.39,0:00:26.33,Default,,0000,0000,0000,,Como a gente já comentou, Dialogue: 0,0:00:26.33,0:00:30.08,Default,,0000,0000,0000,,a gente consegue reaproveitar \Nbastante coisa no desenvolvimento Dialogue: 0,0:00:30.08,0:00:31.99,Default,,0000,0000,0000,,e tem vários motivos\Npara fazer isso. Dialogue: 0,0:00:31.99,0:00:34.91,Default,,0000,0000,0000,,Se a gente quisesse, Dialogue: 0,0:00:34.91,0:00:36.38,Default,,0000,0000,0000,,a gente até poderia fazer \Nisso tudo do zero, Dialogue: 0,0:00:36.38,0:00:37.84,Default,,0000,0000,0000,,mas tem alguns problemas \Nnessa abordagem. Dialogue: 0,0:00:37.84,0:00:39.00,Default,,0000,0000,0000,,Imagina que dentro \Nda sua aplicação, Dialogue: 0,0:00:39.00,0:00:42.36,Default,,0000,0000,0000,,você tem que exibir uma mensagem\Npara algum usuário. Dialogue: 0,0:00:42.36,0:00:43.77,Default,,0000,0000,0000,,Dentro dessa mensagem, Dialogue: 0,0:00:43.77,0:00:45.89,Default,,0000,0000,0000,,você provavelmente \Nvai ter o nome do usuário Dialogue: 0,0:00:45.89,0:00:48.50,Default,,0000,0000,0000,,e alguns elementos extras, \Ncomo um prefixo ou sufixo, Dialogue: 0,0:00:48.50,0:00:49.81,Default,,0000,0000,0000,,alguma coisa desse tipo. Dialogue: 0,0:00:49.81,0:00:51.91,Default,,0000,0000,0000,,Pronto, esse seu código \Nvai funcionar mais, Dialogue: 0,0:00:51.91,0:00:54.39,Default,,0000,0000,0000,,felizmente ou, infelizmente, \Nmais para frente no seu código, Dialogue: 0,0:00:54.39,0:00:57.04,Default,,0000,0000,0000,,você vai ter que repetir \Naquele mesmo comportamento. Dialogue: 0,0:00:57.04,0:00:59.83,Default,,0000,0000,0000,,E conforme sua aplicação \Nfor crescendo, Dialogue: 0,0:00:59.83,0:01:05.67,Default,,0000,0000,0000,,provavelmente em outros lugares \Nvocê vai ter que fazer isso também. Dialogue: 0,0:01:05.67,0:01:07.02,Default,,0000,0000,0000,,E não só nesse arquivo,\Nmas em vários outros arquivos. Dialogue: 0,0:01:07.02,0:01:11.82,Default,,0000,0000,0000,,E agora você já está começando\Na enxergar qual que é o problema. Dialogue: 0,0:01:11.82,0:01:14.26,Default,,0000,0000,0000,,Não só a gente não está conseguindo \Nreaproveitar aquele código, Dialogue: 0,0:01:14.26,0:01:16.77,Default,,0000,0000,0000,,porque ele está espalhado \Nno meio da nossa aplicação, Dialogue: 0,0:01:16.77,0:01:19.21,Default,,0000,0000,0000,,como se a gente precisar \Ntrocar aquele comportamento Dialogue: 0,0:01:19.21,0:01:21.46,Default,,0000,0000,0000,,para adicionar ou remover\Nalguma característica, Dialogue: 0,0:01:21.46,0:01:23.79,Default,,0000,0000,0000,,isso vai ser muito complicado, Dialogue: 0,0:01:23.79,0:01:26.21,Default,,0000,0000,0000,,porque a gente vai ter que depender\Nde ferramentas de busca Dialogue: 0,0:01:26.21,0:01:28.90,Default,,0000,0000,0000,,para procurar algum \Ntrecho de código Dialogue: 0,0:01:28.90,0:01:31.58,Default,,0000,0000,0000,,e então alterá-lo\Nem todos os lugares. Dialogue: 0,0:01:31.58,0:01:34.35,Default,,0000,0000,0000,,É muito fácil a gente acabar \Nesquecendo um ou dois lugares Dialogue: 0,0:01:34.35,0:01:37.11,Default,,0000,0000,0000,,e, com isso, injetar\Nbugs no nosso programa. Dialogue: 0,0:01:37.11,0:01:39.91,Default,,0000,0000,0000,,Para resolver esse problema,\Na gente tem as funções, Dialogue: 0,0:01:39.91,0:01:42.61,Default,,0000,0000,0000,,que é a porta de entrada\Npara o tema de abstração. Dialogue: 0,0:01:42.61,0:01:45.50,Default,,0000,0000,0000,,Com elas, a gente consegue criar blocos \Nde código parametrizáveis Dialogue: 0,0:01:45.50,0:01:48.64,Default,,0000,0000,0000,,e executar uma lógica específica\Nquantas vezes a gente quiser. Dialogue: 0,0:01:48.64,0:01:51.59,Default,,0000,0000,0000,,Funções existem basicamente\Ntodas as linguagens, Dialogue: 0,0:01:51.59,0:01:54.54,Default,,0000,0000,0000,,de uma forma ou de outra. Dialogue: 0,0:01:54.54,0:01:57.33,Default,,0000,0000,0000,,E a característica principal\Ndelas é isolar bloco de código Dialogue: 0,0:01:57.33,0:01:58.73,Default,,0000,0000,0000,,para reaproveitamento. Dialogue: 0,0:01:58.73,0:02:03.04,Default,,0000,0000,0000,,Sendo assim, a gente consegue \Nimplementar o que a gente quiser Dialogue: 0,0:02:03.04,0:02:06.15,Default,,0000,0000,0000,,e dar manutenção \Nem um só lugar do nosso código. Dialogue: 0,0:02:06.15,0:02:08.39,Default,,0000,0000,0000,,Se a gente precisar alterar \Num comportamento, Dialogue: 0,0:02:08.39,0:02:10.23,Default,,0000,0000,0000,,basta alterar dentro \Ndaquela função Dialogue: 0,0:02:10.23,0:02:12.08,Default,,0000,0000,0000,,e aonde ela estiver\Nsendo referenciada, Dialogue: 0,0:02:12.08,0:02:14.55,Default,,0000,0000,0000,,o comportamento \Nvai ser atualizado também. Dialogue: 0,0:02:14.55,0:02:15.65,Default,,0000,0000,0000,,Legal. Dialogue: 0,0:02:15.65,0:02:17.46,Default,,0000,0000,0000,,Agora que você entendeu a motivação \Ne, mais ou menos, Dialogue: 0,0:02:17.46,0:02:19.49,Default,,0000,0000,0000,,a ideia por trás das funções,\Nvamos ver, na prática, Dialogue: 0,0:02:19.49,0:02:21.52,Default,,0000,0000,0000,,como que isso funciona no Python. Dialogue: 0,0:02:21.52,0:02:23.09,Default,,0000,0000,0000,,Então, vamos lá para o código. Dialogue: 0,0:02:23.09,0:02:25.55,Default,,0000,0000,0000,,Aqui no VS Code, eu já tenho \No meu arquivo main.py criado. Dialogue: 0,0:02:25.55,0:02:28.01,Default,,0000,0000,0000,,Então, vamos começar\Ndefinindo a nossa função. Dialogue: 0,0:02:28.01,0:02:30.52,Default,,0000,0000,0000,,E, para isso, eu vou usar\Na palavra reservada def. Dialogue: 0,0:02:30.52,0:02:32.68,Default,,0000,0000,0000,,Cada linguagem de programação\Ntem a sua forma de fazer Dialogue: 0,0:02:32.68,0:02:34.85,Default,,0000,0000,0000,,e é assim que a gente faz no Python. Dialogue: 0,0:02:34.85,0:02:37.10,Default,,0000,0000,0000,,Eu vou começar, então, aqui colocando \No nome da minha função, Dialogue: 0,0:02:37.10,0:02:39.34,Default,,0000,0000,0000,,que vai ser exatamente \Nminha função. Dialogue: 0,0:02:39.34,0:02:42.36,Default,,0000,0000,0000,,A gente pode mudar isso \Nno futuro sem problema nenhum. Dialogue: 0,0:02:42.36,0:02:45.11,Default,,0000,0000,0000,,E, para que o Python entenda,\Nde fato, que isso é uma função, Dialogue: 0,0:02:45.11,0:02:47.37,Default,,0000,0000,0000,,eu vou colocar aqui\Nos parênteses e os dois pontos. Dialogue: 0,0:02:47.37,0:02:48.56,Default,,0000,0000,0000,,Pronto. Dialogue: 0,0:02:48.56,0:02:50.46,Default,,0000,0000,0000,,A partir de agora, Dialogue: 0,0:02:50.46,0:02:52.35,Default,,0000,0000,0000,,eu estou livre para desenvolver \No corpo da minha função. Dialogue: 0,0:02:52.35,0:02:53.89,Default,,0000,0000,0000,,Ou seja, o que eu quero\Nque seja executado Dialogue: 0,0:02:53.89,0:02:56.39,Default,,0000,0000,0000,,quando essa função for invocada. Dialogue: 0,0:02:56.39,0:02:59.24,Default,,0000,0000,0000,,No nosso exemplo, a gente vai\Ncolocar apenas um print, Dialogue: 0,0:02:59.24,0:03:02.84,Default,,0000,0000,0000,,escrevendo alguma mensagem\Nsimples, como, por exemplo, Dialogue: 0,0:03:02.84,0:03:04.65,Default,,0000,0000,0000,,"olá, aluno". Dialogue: 0,0:03:04.65,0:03:06.45,Default,,0000,0000,0000,,E salvar o arquivo. Dialogue: 0,0:03:06.45,0:03:09.56,Default,,0000,0000,0000,,Nesse momento, a gente já pode\Nexecutar a nossa aplicação Dialogue: 0,0:03:09.56,0:03:11.86,Default,,0000,0000,0000,,usando o python.exe\Ne o nome do arquivo. Dialogue: 0,0:03:11.86,0:03:13.58,Default,,0000,0000,0000,,Veja só. Dialogue: 0,0:03:13.58,0:03:16.56,Default,,0000,0000,0000,,Aqui no terminal,\Neu vou escrever python.exe, Dialogue: 0,0:03:16.56,0:03:19.53,Default,,0000,0000,0000,,ponto barra e o nome do meu arquivo. Dialogue: 0,0:03:19.53,0:03:21.57,Default,,0000,0000,0000,,Ponto barra, main.py. Dialogue: 0,0:03:21.57,0:03:24.66,Default,,0000,0000,0000,,E se eu der um enter, Dialogue: 0,0:03:24.66,0:03:26.20,Default,,0000,0000,0000,,repara que a aplicação \Naté executou, Dialogue: 0,0:03:26.20,0:03:27.75,Default,,0000,0000,0000,,mas não aconteceu nada \Nde muito interessante. Dialogue: 0,0:03:27.75,0:03:30.27,Default,,0000,0000,0000,,Isso foi, basicamente, \Nporque eu declarei a minha função, Dialogue: 0,0:03:30.27,0:03:32.79,Default,,0000,0000,0000,,mas eu não invoquei\Nela em lugar algum. Dialogue: 0,0:03:32.79,0:03:35.30,Default,,0000,0000,0000,,Lembra, funções são\Nblocos de abstração. Dialogue: 0,0:03:35.30,0:03:36.70,Default,,0000,0000,0000,,Eu consigo escrever \Ncódigo lá dentro, Dialogue: 0,0:03:36.70,0:03:38.52,Default,,0000,0000,0000,,mas ele só é executado, \Nde fato, Dialogue: 0,0:03:38.52,0:03:40.88,Default,,0000,0000,0000,,quando eu invoco \Nessa função. Dialogue: 0,0:03:40.88,0:03:43.24,Default,,0000,0000,0000,,Então, vamos lá,\Naqui no nosso código. Dialogue: 0,0:03:43.24,0:03:46.18,Default,,0000,0000,0000,,E aqui embaixo, eu vou\Ninvocar essa função. Dialogue: 0,0:03:46.18,0:03:47.42,Default,,0000,0000,0000,,Para fazer isso, Dialogue: 0,0:03:47.42,0:03:49.43,Default,,0000,0000,0000,,basta eu executar \No nome dessa função Dialogue: 0,0:03:49.43,0:03:51.43,Default,,0000,0000,0000,,e colocar aqui os parênteses. Dialogue: 0,0:03:51.43,0:03:53.44,Default,,0000,0000,0000,,Dessa forma, eu estou\Npedindo para o python Dialogue: 0,0:03:53.44,0:03:56.31,Default,,0000,0000,0000,,para que ele pegue e execute\Naquele bloco de código. Dialogue: 0,0:03:56.31,0:03:59.32,Default,,0000,0000,0000,,Se eu rodar novamente \No meu programa, dessa vez sim, Dialogue: 0,0:03:59.32,0:04:02.62,Default,,0000,0000,0000,,a gente tem a mensagem\N"olá, alunos", sendo exibida. Dialogue: 0,0:04:02.62,0:04:04.02,Default,,0000,0000,0000,,E bacana, a nossa função \Nestá funcionando, Dialogue: 0,0:04:04.02,0:04:06.15,Default,,0000,0000,0000,,mas ela ainda não tem \Nmuita funcionalidade Dialogue: 0,0:04:06.15,0:04:08.29,Default,,0000,0000,0000,,na nossa aplicação. Dialogue: 0,0:04:08.29,0:04:10.94,Default,,0000,0000,0000,,Porque uma das\Ncaracterísticas de funções Dialogue: 0,0:04:10.94,0:04:13.67,Default,,0000,0000,0000,,é ter a capacidade\Nde ser parametrizada. Dialogue: 0,0:04:13.67,0:04:15.39,Default,,0000,0000,0000,,Ou seja, a gente deve,\Ndependendo do cenário, Dialogue: 0,0:04:15.39,0:04:18.33,Default,,0000,0000,0000,,conseguir manipular \No comportamento dela Dialogue: 0,0:04:18.33,0:04:21.26,Default,,0000,0000,0000,,baseado em informações externas. Dialogue: 0,0:04:21.26,0:04:23.18,Default,,0000,0000,0000,,E isso a gente faz justamente através\Nde parâmetros. Dialogue: 0,0:04:23.18,0:04:25.98,Default,,0000,0000,0000,,No Python, a gente consegue definir \Numa lista de parâmetros Dialogue: 0,0:04:25.98,0:04:28.77,Default,,0000,0000,0000,,que essa função recebe, Dialogue: 0,0:04:28.77,0:04:30.83,Default,,0000,0000,0000,,semelhante à própria\Nfuncionativa print. Dialogue: 0,0:04:30.83,0:04:31.84,Default,,0000,0000,0000,,Se a gente quiser \Nexecutar ela, Dialogue: 0,0:04:31.84,0:04:34.58,Default,,0000,0000,0000,,a gente tem que mandar\Num string, ou seja, Dialogue: 0,0:04:34.58,0:04:37.16,Default,,0000,0000,0000,,um texto que vai ser\Nexibido no terminal. Dialogue: 0,0:04:37.16,0:04:40.30,Default,,0000,0000,0000,,É assim que a gente controla\No comportamento da função print, Dialogue: 0,0:04:40.30,0:04:44.22,Default,,0000,0000,0000,,parametrizando para ela a mensagem\Nque a gente quer que seja exibida. Dialogue: 0,0:04:44.22,0:04:47.43,Default,,0000,0000,0000,,No nosso caso, o que a gente \Nvai fazer é adicionar um parâmetro Dialogue: 0,0:04:47.43,0:04:49.59,Default,,0000,0000,0000,,para que a gente informe\No nome que a gente Dialogue: 0,0:04:49.59,0:04:51.75,Default,,0000,0000,0000,,quer que esteja\Ndentro da mensagem. Dialogue: 0,0:04:51.75,0:04:52.57,Default,,0000,0000,0000,,Entendeu? Dialogue: 0,0:04:52.57,0:04:53.38,Default,,0000,0000,0000,,Então, vamos lá. Dialogue: 0,0:04:53.38,0:04:56.45,Default,,0000,0000,0000,,Aqui no nosso código, então,\Neu vou começar entre os parênteses, Dialogue: 0,0:04:56.45,0:04:59.49,Default,,0000,0000,0000,,colocando o meu parâmetro,\Nque eu vou chamar de nome. Dialogue: 0,0:04:59.49,0:05:01.87,Default,,0000,0000,0000,,E no Python, a gente\Ntem a tipagem dinâmica. Dialogue: 0,0:05:01.87,0:05:05.44,Default,,0000,0000,0000,,Isso significa que eu posso\Ndeixar o meu código dessa forma, Dialogue: 0,0:05:05.44,0:05:09.19,Default,,0000,0000,0000,,e em tempo de execução, o Python\Nvai saber o tipo dessa variável. Dialogue: 0,0:05:09.19,0:05:11.24,Default,,0000,0000,0000,,Mas caso eu queira deixar\Nmais claro para algum desenvolvedor Dialogue: 0,0:05:11.24,0:05:15.24,Default,,0000,0000,0000,,que pegar o nosso código,\Neu posso colocar aqui do lado, Dialogue: 0,0:05:15.24,0:05:18.55,Default,,0000,0000,0000,,na frente dos dois pontos, \No tipo str. Dialogue: 0,0:05:18.55,0:05:22.30,Default,,0000,0000,0000,,Lembra, isso não vai mudar\Nna prática nada dentro da linguagem, Dialogue: 0,0:05:22.30,0:05:24.30,Default,,0000,0000,0000,,mas vai fazer com que alguém\Nque pegue meu código Dialogue: 0,0:05:24.30,0:05:26.85,Default,,0000,0000,0000,,entenda que eu estou esperando\Nque ele mande um string. Dialogue: 0,0:05:26.85,0:05:30.54,Default,,0000,0000,0000,,Se ele mandar um número, o Python\Nnão vai reclamar nesse momento. Dialogue: 0,0:05:30.54,0:05:32.56,Default,,0000,0000,0000,,Mas eu estou informando para ele \Nque o comportamento esperado Dialogue: 0,0:05:32.56,0:05:34.59,Default,,0000,0000,0000,,é que ele mande um texto. Dialogue: 0,0:05:34.59,0:05:35.95,Default,,0000,0000,0000,,Tá bom? Então vamos lá. Dialogue: 0,0:05:35.95,0:05:38.34,Default,,0000,0000,0000,,Agora que dentro do contexto \Nda minha função eu tenho essa variável, Dialogue: 0,0:05:38.34,0:05:40.73,Default,,0000,0000,0000,,eu posso usar ela. Dialogue: 0,0:05:40.73,0:05:43.09,Default,,0000,0000,0000,,Então eu vou basicamente\Ncopiar ela aqui Dialogue: 0,0:05:43.09,0:05:45.45,Default,,0000,0000,0000,,e remover a palavra aluno \Nda minha mensagem, Dialogue: 0,0:05:45.45,0:05:47.72,Default,,0000,0000,0000,,porque agora eu vou fazer\Numa concatenação simples. Dialogue: 0,0:05:47.72,0:05:49.86,Default,,0000,0000,0000,,E para isso, eu vou colocar \Naqui na frente do sinal de mais Dialogue: 0,0:05:49.86,0:05:52.01,Default,,0000,0000,0000,,a variável nome. Dialogue: 0,0:05:52.01,0:05:53.89,Default,,0000,0000,0000,,E vamos ver o que acontece\Nse eu executar o meu código Dialogue: 0,0:05:53.89,0:05:55.77,Default,,0000,0000,0000,,do jeito que ele está. Dialogue: 0,0:05:55.77,0:05:57.37,Default,,0000,0000,0000,,Pronto. Dialogue: 0,0:05:57.37,0:05:59.72,Default,,0000,0000,0000,,A gente agora tem um erro, \Nporque eu defini um parâmetro Dialogue: 0,0:05:59.72,0:06:02.08,Default,,0000,0000,0000,,e ele é um parâmetro posicional. Dialogue: 0,0:06:02.08,0:06:04.54,Default,,0000,0000,0000,,Ou seja, eu posso definir\Nvários parâmetros. Dialogue: 0,0:06:04.54,0:06:07.24,Default,,0000,0000,0000,,A ordem com que eu passar\Neles vai ser a ordem Dialogue: 0,0:06:07.24,0:06:09.26,Default,,0000,0000,0000,,com que o Python vai alocá-los\Ndentro das variáveis. Dialogue: 0,0:06:09.26,0:06:11.28,Default,,0000,0000,0000,,Vamos lá. Dialogue: 0,0:06:11.28,0:06:14.42,Default,,0000,0000,0000,,Isso significa que se eu tivesse\Numa outra variável aqui, Dialogue: 0,0:06:14.42,0:06:18.33,Default,,0000,0000,0000,,por exemplo, idade, eu teria\Nque passar aqui embaixo, Dialogue: 0,0:06:18.33,0:06:19.87,Default,,0000,0000,0000,,dentro da invocação\Nda minha função, Dialogue: 0,0:06:19.87,0:06:22.18,Default,,0000,0000,0000,,a primeira variável \Nque é o nome. Dialogue: 0,0:06:22.18,0:06:24.49,Default,,0000,0000,0000,,Por exemplo, aluno. Dialogue: 0,0:06:24.49,0:06:27.49,Default,,0000,0000,0000,,E se eu quiser passar idade,\Neu coloco aqui na frente. Dialogue: 0,0:06:27.49,0:06:29.87,Default,,0000,0000,0000,,Repara que a própria IDE \Njá vai dando dicas para a gente Dialogue: 0,0:06:29.87,0:06:32.58,Default,,0000,0000,0000,,de como que a gente está\Nesperando receber os valores. Dialogue: 0,0:06:32.58,0:06:35.40,Default,,0000,0000,0000,,Mas no nosso cenário, a gente\Nsó vai ter um parâmetro. Dialogue: 0,0:06:35.40,0:06:37.28,Default,,0000,0000,0000,,Então eu vou remover a idade. Dialogue: 0,0:06:37.28,0:06:40.51,Default,,0000,0000,0000,,E se a gente executa novamente\No nosso código, agora sim. Dialogue: 0,0:06:40.51,0:06:43.94,Default,,0000,0000,0000,,A gente tem a mesma mensagem\Nde antes, mas um pouco diferente. Dialogue: 0,0:06:43.94,0:06:46.57,Default,,0000,0000,0000,,Porque essa mensagem agora,\Nela está parametrizável. Dialogue: 0,0:06:46.57,0:06:48.99,Default,,0000,0000,0000,,Ou seja, a gente consegue \Ncontrolar o comportamento Dialogue: 0,0:06:48.99,0:06:51.41,Default,,0000,0000,0000,,daquela função do lado de fora. Dialogue: 0,0:06:51.41,0:06:53.64,Default,,0000,0000,0000,,E se eu quiser usar essa função \Nquantas vezes eu quiser, Dialogue: 0,0:06:53.64,0:06:55.86,Default,,0000,0000,0000,,eu posso sem problema nenhum. Dialogue: 0,0:06:55.86,0:06:57.86,Default,,0000,0000,0000,,Então, imagina, por exemplo,\Nque aqui embaixo Dialogue: 0,0:06:57.86,0:07:00.04,Default,,0000,0000,0000,,eu vou querer executar\Nela mais duas vezes. Dialogue: 0,0:07:00.04,0:07:01.53,Default,,0000,0000,0000,,Só que dessa vez,\Ncolocando aluna, Dialogue: 0,0:07:01.53,0:07:04.10,Default,,0000,0000,0000,,e aqui embaixo, Dialogue: 0,0:07:04.10,0:07:06.67,Default,,0000,0000,0000,,talvez você esteja\Nsentindo falta disso. Dialogue: 0,0:07:06.67,0:07:07.96,Default,,0000,0000,0000,,Então, mundo, Dialogue: 0,0:07:07.96,0:07:11.71,Default,,0000,0000,0000,,se eu limpar o meu terminal\Ne executar novamente a aplicação, Dialogue: 0,0:07:11.71,0:07:14.73,Default,,0000,0000,0000,,a gente vê que a gente tem\Nas três exibições daquela função, Dialogue: 0,0:07:14.73,0:07:16.74,Default,,0000,0000,0000,,sendo que cada uma delas \Nreaproveitou o código Dialogue: 0,0:07:16.74,0:07:19.78,Default,,0000,0000,0000,,que a gente definiu na função,\Nmas foi parametrizado Dialogue: 0,0:07:19.78,0:07:22.29,Default,,0000,0000,0000,,para que o comportamento\Nfosse diferente. Dialogue: 0,0:07:22.29,0:07:23.66,Default,,0000,0000,0000,,Incrível, né? Dialogue: 0,0:07:23.66,0:07:25.03,Default,,0000,0000,0000,,A gente construiu uma função simples, Dialogue: 0,0:07:25.03,0:07:27.87,Default,,0000,0000,0000,,mas as funções estão\Npor todo lugar na linguagem. Dialogue: 0,0:07:27.87,0:07:30.35,Default,,0000,0000,0000,,Sejam funções nativas\Nou funções de pacote que a gente Dialogue: 0,0:07:30.35,0:07:32.85,Default,,0000,0000,0000,,vai uma hora ou outra\Naté que acabar usando. Dialogue: 0,0:07:32.85,0:07:36.29,Default,,0000,0000,0000,,Dá uma explorada nesse código aqui\Ne tenta melhorar ele um pouco. Dialogue: 0,0:07:36.29,0:07:39.03,Default,,0000,0000,0000,,Tenta adicionar um outro parâmetro, \Num outro tipo, Dialogue: 0,0:07:39.03,0:07:41.77,Default,,0000,0000,0000,,faz condicionais lá dentro, \Nloops, quem sabe. Dialogue: 0,0:07:41.77,0:07:42.84,Default,,0000,0000,0000,,Experimenta. Dialogue: 0,0:07:42.84,0:07:45.65,Default,,0000,0000,0000,,Ganha afinidade com essa sintaxe aqui \Ne vamos ver até onde você chega.