< Return to Video

vimeo.com/.../1064653407

  • 0:08 - 0:11
    A gente deu nosso primeiro passo
    no reaproveitamento de código
  • 0:11 - 0:14
    com as funções e entendeu
    também como usar os parâmetros.
  • 0:14 - 0:15
    Mas agora está na hora
    da gente dar uma olhada
  • 0:15 - 0:18
    em um outro tipo de parâmetro
    que permite que a gente informe dados
  • 0:18 - 0:21
    de uma forma um pouco diferente.
  • 0:21 - 0:23
    Está na hora da gente
    olhar um pouco os args.
  • 0:23 - 0:25
    A gente já sabe que as funções
    servem para que a gente isole
  • 0:25 - 0:28
    e reaproveite o código,
  • 0:28 - 0:31
    e que a gente também pode
    informar parâmetros para elas.
  • 0:31 - 0:33
    Não há necessariamente
    uma quantidade limite
  • 0:33 - 0:35
    de parâmetros
    que a gente pode informar,
  • 0:35 - 0:37
    desde que a gente especifique
    eles corretamente
  • 0:37 - 0:39
    na assinatura do método.
  • 0:39 - 0:40
    E calma.
  • 0:40 - 0:42
    Quando a gente fala assinatura
    do método,
  • 0:42 - 0:43
    a gente está basicamente
    falando daquela primeira linha,
  • 0:43 - 0:47
    aonde a gente define o nome
    e os parâmetros da função,
  • 0:47 - 0:52
    que, por acaso, a gente pode
    especificar quantos a gente quiser.
  • 0:52 - 0:54
    Basta que a gente coloque
    os seus nomes adequados.
  • 0:54 - 0:56
    Por exemplo, nome, idade
    ou qualquer outra informação
  • 0:56 - 1:00
    que a gente queira usar dentro
    daquela função.
  • 1:00 - 1:02
    E, lembra, o nome que a gente
    colocar na assinatura
  • 1:02 - 1:06
    é como a gente vai referenciá-las
    dentro do bloco da função.
  • 1:06 - 1:08
    Na maioria dos casos,
    a gente vai ter bem claro
  • 1:08 - 1:10
    quais são as informações
    que a gente precisa
  • 1:10 - 1:12
    para executar um determinado
    bloco de código
  • 1:12 - 1:14
    dentro de uma função.
  • 1:14 - 1:16
    E isso, na verdade, é a regra.
  • 1:16 - 1:18
    A gente precisa saber
    quais são as informações
  • 1:18 - 1:21
    para que a gente saiba
    como lidar com elas dentro do código.
  • 1:21 - 1:24
    Mas existem alguns
    cenários em que,
  • 1:24 - 1:26
    embora a gente saiba quais
    informações a gente precisa,
  • 1:26 - 1:29
    a gente não sabe exatamente
    quantas informações vão vir.
  • 1:29 - 1:33
    E calma, eu sei que está um pouco
    confuso, mas você já já vai entender.
  • 1:33 - 1:36
    Imagina que você tem uma função
    que tem que receber um nome
  • 1:36 - 1:38
    e exibir uma mensagem
    com esse nome.
  • 1:38 - 1:40
    Está bem claro aqui como
    é que as coisas vão funcionar.
  • 1:40 - 1:43
    Dentro dos parâmetros, a gente vai
    ter uma variável que representa o nome
  • 1:43 - 1:46
    e a gente vai usar
    ela dentro da nossa função.
  • 1:46 - 1:47
    Simples.
  • 1:47 - 1:50
    Por outro lado, imagina que a gente
    vai calcular alguma média.
  • 1:50 - 1:53
    A gente sabe como é feito
    o cálculo de média.
  • 1:53 - 1:56
    A gente soma, por exemplo,
    todas as notas de um aluno
  • 1:56 - 1:59
    e divide essa somatória
    pela quantidade de notas totais.
  • 1:59 - 2:00
    A gente pode, sem problema nenhum,
  • 2:00 - 2:04
    implementar uma função
    que recebe dois valores.
  • 2:04 - 2:06
    A gente vai, então, pegar
    esses valores, somar,
  • 2:06 - 2:09
    e o que der de resultado,
    a gente divide por dois.
  • 2:09 - 2:10
    Mas pensa aqui comigo.
  • 2:10 - 2:12
    A gente está trabalhando com Python,
  • 2:12 - 2:14
    e diversas possibilidades
    estão na palma da nossa mão.
  • 2:14 - 2:16
    Então, por que, ao invés de a gente
    implementar uma função
  • 2:16 - 2:20
    que lida com duas notas,
    a gente implementa uma função
  • 2:20 - 2:22
    que lida com qualquer
    quantidade de notas
  • 2:22 - 2:23
    que a gente quiser informar?
  • 2:23 - 2:24
    Vamos lá, então.
  • 2:24 - 2:26
    Aqui no VS Code, a gente
    já tem um código inicial,
  • 2:26 - 2:28
    que é aquele nosso primeiro
    exemplo que a gente comentou.
  • 2:28 - 2:31
    A gente tem uma função simples,
    que recebe um parâmetro,
  • 2:31 - 2:34
    e ele é usado aqui para montar
    alguma mensagem.
  • 2:34 - 2:35
    Se a gente exibir
    aqui o nosso código,
  • 2:35 - 2:37
    ou melhor, executar
    o nosso código,
  • 2:37 - 2:40
    a gente consegue ver que a mensagem
    é exibida com sucesso,
  • 2:40 - 2:43
    e na invocação da função,
    a gente passa apenas um parâmetro,
  • 2:43 - 2:46
    que no nosso caso
    é o valor mundo.
  • 2:46 - 2:48
    Olha o que acontece se a gente
    tentar passar aqui, por exemplo,
  • 2:48 - 2:50
    um outro valor.
  • 2:50 - 2:53
    Por exemplo, aluno,
    que é uma outra string.
  • 2:53 - 2:55
    Repara que o Python dá um erro,
  • 2:55 - 2:57
    porque a gente especificou
    que essa função recebe
  • 2:57 - 2:59
    apenas um argumento, ou seja,
    um parâmetro,
  • 2:59 - 3:02
    mas dois foram informados.
  • 3:02 - 3:05
    E é exatamente o que a gente
    vai querer fazer já já.
  • 3:05 - 3:07
    Eu vou começar, então,
    editando o nome dessa função
  • 3:07 - 3:09
    para que faça mais sentido
    com o que a gente quer fazer.
  • 3:09 - 3:12
    Aqui no nosso caso é fazer
    o cálculo de uma média.
  • 3:12 - 3:15
    Então eu vou vir aqui
    e vou editar o nome dela
  • 3:15 - 3:17
    para ficar calcular média.
  • 3:17 - 3:19
    E pronto.
  • 3:19 - 3:21
    Ao invés de um nome,
    eu vou receber as notas aqui.
  • 3:21 - 3:23
    E é aqui que vem a chave.
  • 3:23 - 3:26
    Quando eu especifico os meus
    parâmetros dessa forma,
  • 3:26 - 3:29
    eu estou informando para o Python
    parâmetros posicionais
  • 3:29 - 3:32
    com uma quantidade
    específica de itens.
  • 3:32 - 3:34
    Mas agora a gente vai usar
  • 3:34 - 3:37
    uma técnica chamada args do Python,
    que permite que a gente informe para ele
  • 3:37 - 3:40
    que esse parâmetro
    é um parâmetro especial
  • 3:40 - 3:43
    e que vai receber uma quantidade
    não exata de itens.
  • 3:43 - 3:47
    E para isso, basta a gente colocar
    o asterisco aqui no começo do nome.
  • 3:47 - 3:48
    E pronto.
  • 3:48 - 3:50
    A partir desse momento,
  • 3:50 - 3:52
    o Python vai tratar essa variável não
    como uma variável normal,
  • 3:52 - 3:54
    mas sim como uma tupla,
  • 3:54 - 3:56
    que é basicamente
    uma coleção de itens
  • 3:56 - 3:58
    que não pode ser alterada.
  • 3:58 - 4:00
    Então, antes da gente
    implementar a nossa lógica,
  • 4:00 - 4:04
    vamos só colocar um print aqui,
    exibindo o valor dessa variável
  • 4:04 - 4:07
    que a gente está recebendo
    nos parâmetros,
  • 4:07 - 4:08
    para a gente ver a cara dela.
  • 4:08 - 4:12
    Então, aqui na execução do método,
    eu vou atualizar o nome também
  • 4:12 - 4:15
    e eu vou deixar aqueles
    nossos dois valores, mundo e aluno.
  • 4:15 - 4:17
    Porque lembra,
  • 4:17 - 4:18
    o Python é uma linguagem
    de tipo dinâmico, então,
  • 4:18 - 4:22
    enquanto a gente não usar
    os valores como se fossem números,
  • 4:22 - 4:24
    a gente não vai ter problema nenhum.
  • 4:24 - 4:26
    Se eu executar novamente
    aqui o nosso código,
  • 4:26 - 4:29
    a gente repara que os dois
    valores estão aqui,
  • 4:29 - 4:31
    mesmo que em apenas uma variável.
  • 4:31 - 4:32
    E se a gente quiser,
  • 4:32 - 4:34
    a gente pode vir aqui
    e adicionar qualquer outra coisa,
  • 4:34 - 4:37
    como, por exemplo, aluna.
  • 4:37 - 4:38
    Se a gente executar,
    a gente vê que,
  • 4:38 - 4:41
    mesmo sem alterar
    a definição da nossa função,
  • 4:41 - 4:42
    aquele novo valor
    que a gente formou
  • 4:42 - 4:46
    está lá dentro também,
    dentro da nossa tupla.
  • 4:46 - 4:47
    Então, agora sim,
  • 4:47 - 4:50
    é hora da gente implementar
    a nossa lógica do cálculo da média.
  • 4:50 - 4:51
    Então, para isso,
    a gente vai vir aqui dentro
  • 4:51 - 4:55
    e vai começar com uma variável
    que vai ser, por exemplo,
  • 4:55 - 4:57
    a soma, que vai
    começar com zero.
  • 4:57 - 5:00
    Eu vou implementar isso aqui
    de uma forma bem simples,
  • 5:00 - 5:02
    para que a gente entenda
    como está sendo feito.
  • 5:02 - 5:04
    Então, eu vou começar
    executando um loop
  • 5:04 - 5:06
    para cada item
    daquela minha tupla.
  • 5:06 - 5:08
    Lembra?
  • 5:08 - 5:11
    O for permite que a gente
    itere sobre vários tipos de dados,
  • 5:11 - 5:12
    e a tupla é um deles.
  • 5:12 - 5:15
    Se a gente fizer isso com a tupla,
    ele vai passar por cada um dos itens,
  • 5:15 - 5:18
    e a gente vai ter a oportunidade
    de fazer alguma coisa com esse número.
  • 5:18 - 5:21
    No nosso caso, eu vou passar
    dentro das notas.
  • 5:21 - 5:23
    Para cada nota, eu vou chamar
    ela de nota, aqui dentro,
  • 5:23 - 5:25
    e eu vou especificar
    a minha lista, ou a minha coleção,
  • 5:25 - 5:27
    que no caso é uma tupla.
  • 5:27 - 5:30
    E pronto.
  • 5:30 - 5:32
    Aqui dentro, eu vou basicamente
    usar o operador de soma,
  • 5:32 - 5:36
    para fazer com que o soma
    receba o valor do próprio soma,
  • 5:36 - 5:40
    mais o valor da minha nota atual,
    que está dentro do meu loop.
  • 5:40 - 5:40
    Beleza?
  • 5:40 - 5:41
    Pronto.
  • 5:41 - 5:44
    Nesse ponto aqui, a gente já tem
    a somatória das nossas notas.
  • 5:44 - 5:46
    Então, para terminar a lógica,
  • 5:46 - 5:48
    basta a gente fazer a divisão
    pela quantidade de notas.
  • 5:48 - 5:52
    Então, eu vou declarar uma outra
    variável aqui, que vai ser a média.
  • 5:52 - 5:56
    Ela vai ser basicamente
    igual à minha soma,
  • 5:56 - 6:00
    dividida pela quantidade de itens
    que foram informadas naquela tupla.
  • 6:00 - 6:03
    E para fazer isso, a gente
    pode usar a função nativa len,
  • 6:03 - 6:07
    que recebe alguma coleção e retorna
    para a gente a quantidade de itens.
  • 6:07 - 6:09
    Então, basta a gente informar
    aqui para ele a nossa variável notas,
  • 6:09 - 6:12
    e pronto.
  • 6:12 - 6:15
    Vou colocar aqui um return, média,
  • 6:15 - 6:18
    para fazer com que a nossa função
    retorne o valor daquele cálculo.
  • 6:18 - 6:20
    E se a gente executar
    o nosso programa de novo,
  • 6:20 - 6:22
    hum, repara que a gente teve um erro.
  • 6:22 - 6:24
    Isso aconteceu basicamente
  • 6:24 - 6:26
    porque a gente mudou a implementação
    da nossa função,
  • 6:26 - 6:30
    mas esqueceu de mudar os valores
    que foram informados no parâmetro.
  • 6:30 - 6:30
    Dá uma olhada.
  • 6:30 - 6:35
    Aqui dentro, a gente está informando
    mundo, aluno e aluna, que são texto.
  • 6:35 - 6:37
    E agora sim, a gente está lidando
    com valores numéricos.
  • 6:37 - 6:40
    Então, basta que a gente
    edite aqui esses valores.
  • 6:40 - 6:43
    Então, vamos começar
    com uma conta simples aqui.
  • 6:43 - 6:45
    Eu vou informar a nota 5 e a nota 5.
  • 6:45 - 6:47
    Eu vou limpar o terminal
  • 6:47 - 6:49
    para que fique um pouco
    mais simples as coisas.
  • 6:49 - 6:53
    E se a gente rodar novamente,
    novamente, o nosso aplicativo rodou,
  • 6:53 - 6:55
    mas a gente não tem nada na tela.
  • 6:55 - 6:57
    E isso aconteceu porque a gente
    executou a função
  • 6:57 - 6:59
    e ela retornou o valor.
  • 6:59 - 7:01
    Mas a gente não exibiu
    isso de lugar em algum.
  • 7:01 - 7:05
    Então, eu vou basicamente envolver
    essa função dentro dos parênteses
  • 7:05 - 7:08
    e usar a função nativa print,
  • 7:08 - 7:11
    para que agora sim
    esse valor seja exibido.
  • 7:11 - 7:13
    E se a gente roda de novo
    com os mesmos valores,
  • 7:13 - 7:15
    agora sim, a gente tem a média 5.
  • 7:15 - 7:19
    E se eu acrescentar algum valor
    aqui, como, por exemplo, 10,
  • 7:19 - 7:23
    a gente tem como
    resultado a média 6.
  • 7:23 - 7:26
    6, que é o resultado
    da somatória de 5,
  • 7:26 - 7:29
    5 e 10, dividido pela
    quantidade total, que é 3.
  • 7:29 - 7:32
    E é dessa forma que a gente consegue
    lidar com informações dinâmicas.
  • 7:32 - 7:34
    Cuidado para não confundir.
  • 7:34 - 7:37
    A gente ainda precisa especificar
    quais são as variáveis.
  • 7:37 - 7:39
    E a gente pode usar
    os args em conjunto
  • 7:39 - 7:42
    com outros tipos
    de variáveis comuns,
  • 7:42 - 7:44
    desde que a gente especifique
    as variáveis comuns no começo
  • 7:44 - 7:47
    e deixe os args para o final.
  • 7:47 - 7:50
    A gente usou os args aqui
    para fazer o cálculo de uma média,
  • 7:50 - 7:51
    que é um cenário
    em que realmente, talvez,
  • 7:51 - 7:56
    a gente tenha uma quantidade dinâmica
    de itens e a gente tenha que lidar com isso.
  • 7:56 - 8:00
    E é exatamente nesse tipo de cenário
    em que você vai querer usar os args.
  • 8:00 - 8:01
    Normalmente, a gente costuma
    usar eles com listas,
  • 8:01 - 8:03
    que vão vir de algum recurso externo,
  • 8:03 - 8:07
    onde a gente não controla
    a quantidade de itens que vai ter,
  • 8:07 - 8:09
    mas quer lidar com todos eles.
  • 8:09 - 8:11
    E é dessa forma que a gente
    consegue lidar
  • 8:11 - 8:13
    com essa lista dinâmica de itens,
    sem ter que necessariamente
  • 8:13 - 8:16
    se preocupar com a quantidade informada.
Title:
vimeo.com/.../1064653407
Video Language:
Portuguese, Brazilian
Duration:
08:19

Portuguese, Brazilian subtitles

Revisions Compare revisions