3. Faça uma função que encontre o maior número de uma determinada lista. Teste-a com as listas a baixo:
No último post sobre funções em Python eu mostrei o básico do básico com as funções. De uma certa forma aquela abordagem é errada e deve ser evitada. Ainda não irei explicar exatamente o porque pois isso depende de um conceito de variáveis locais e globais que eu estarei explicando após ensinar os argumentos das funções.
As funções se tornam praticamente inúteis se não forem utilizados os argumentos. Mas antes de mais nada, o que é um argumento?
Um argumento é uma variável passada para um função. Dessa forma a função se utiliza desse argumento para trabalhar. Vamos ver um exemplo:
Ao definir a função 'ola' eu informei que seria passado um argumento chamado 'nome' e que a função deveria imprimir a palavra 'ola' seguida pelo conteúdo da variável nome. Para quem já trabalhou com outras linguagens como C, C++ ou Java, isso parece algo absurdo pois não foi especificado o tipo da variável. Como vimos a muito tmepo atrás, o Python possui tipagem dinâmica. Com isso não é necessário informar o tipo da variável no argumento.
Esse comportamento pode ser vantajoso ou não, depende do desenvolvedor. O desenvolver Python geralmente é um programador disciplinado, ou seja, suas funções são concisas e bem definidas evitando problemas com o tipo do argumento. A baixo um exemplo de algo que devemos ter cuidado para não ocorrer:
Por enquanto não se preocupem com esses problemas, eu irei mostrar uma forma de evitar esse tipo de ocorrências num futuro próximo. Por enquanto vamos ver alguns exemplo de funções.
Como podemos ver, uma função pode ter um ou mais argumentos. Nesse exemplo nossa função possui dois argumentos, uma letra e uma frase. A função percorre todas as letras da frase informada e conta quantas vezes a letra esperada aparece na frase. No final ela imprime o resultado da contagem.
Criar a função dessa forma é uma grande vantagem pois se podemos contar qualquer letra em qualquer frase. Se criássemos uma função que conta a letra 'a' e precisássemos de uma função que conta as ocorrências da letra e, teríamos que uma nova função. Isso é algo que deve ser planejado pelo programador. Devemos sempre tentar criar funções que sejam adaptáveis e reutilizáveis.
No último post eu deixei alguns exercícios a serem resolvidos. O nosso colega neiesc postou uma solução que pode ser conferida aqui.
A solução dele foi bem interessante mas utilizou algumas funções que ainda não estudamos aqui (como o sum), dessa forma vou postar uma solução somente utilizando loops for. Um pequeno detalhe que nosso colega esqueceu foi de especificar o numero como float na divisão das notas, o que pode causar certos problemas em um programa.
1. Dado o dicionário abaixo, faça programa que verifique qual dos alunos foi reprovado por falta. O critério de reprovação é ter mais faltado mais de 10 vezes.