Funções e módulos em Python

módulos

Criar suas funções é a chave para a sucesso. Vamos ver algumas das opções de parâmetros de entrada de uma função e em outro post vamos falar em criar seus módulos (Conjunto de funções).

Comente suas funções com docstrings

Para acessar a informação help() das suas funções em Python, você precisa adicionar docstrings (documentação inline) ao seu código. Após as configurações docstrings no prompt de comando tente usar help(saudacao) para ter acesso ao help da sua função.

O exemplo acima é uma função que não tem parâmetros de entrada, apenas imprime uma informação. Ao comentar suas funções com aspas triplas você poderá consulta-las em help() e poderá gerar a documentação com pydoc.

Valor Default

No exemplo acima nome é um campo não obrigatório que caso não seja informado será atribuído o valor default “Mundo” e imprime o resultado.

 

Definindo Tipo no parâmetro de entrada

Type hints não são obrigatórios (Python continua dinâmico), mas são altamente recomendados para:

  • Projetos de médio/grande porte

  • Código que será mantido por outras pessoas

  • Bibliotecas e APIs públicas

  • Times de desenvolvimento

  • Prevenção de bugs antes do runtime

Contudo em pequenos ou médios projetos não é interessante o uso de type hints.

Retornando o valor

No exemplo acima a função retornou 5, pois usamos o método return, também definimos que os parâmetros de entrada devem ser do tipo float;

Passando um parâmetro obrigatório e outro opcional em uma função

 

Passando número arbitrários de parâmetros

Passando um Dicionário

 

Dicionário é um tipo de dado mais complexo que farei um post separadamente. A princípio você deve saber que ele existe, e nele temos campos com propriedades chave e valor.

Retornando um Dicionário

Passando uma Função para outra Função

 

Estruturas de controle e repetição

bifurcação
 

O que é uma estrutura de controle

As estruturas de controle alteram o fluxo de execução do programa com base em condições ou repetições. Elas permitem que o código tome decisões, repita ações ou defina condições que determinam o comportamento do programa. Além disso, essas estruturas são essenciais para tornar o código mais dinâmico e adaptável a diferentes cenários. Existem três tipos principais de estruturas de controle: condicionais, de repetição e de controle de fluxo. Cada uma delas desempenha um papel específico, dependendo do tipo de situação que o programador deseja controlar. Portanto, ao entender essas estruturas, podemos criar programas mais flexíveis e eficientes.

Estruturas Condicionais

As estruturas condicionais são usadas para tomar decisões com base em condições verdadeiras ou falsas.

If, Elif e Else

If, Else

Atenção para a estrutura definida no alinhamento

O alinhamento no Python, também conhecido como indentação, desempenha um papel fundamental na sintaxe da linguagem, pois organiza e estrutura o código de forma clara. Em Python, a indentação é obrigatória e substitui as chaves ({}), utilizadas em outras linguagens como C, C++ ou Java, para definir blocos de código. Assim, ao invés de usar chaves, a indentação indica visualmente quais linhas de código pertencem a determinado bloco. Consequentemente, isso torna o código mais legível e intuitivo, além de evitar confusão na definição de blocos de controle.

Estruturas de repetição

While

Quando não sabemos quantas vezes repetiremos um procedimento, utilizamos o while. Nesse caso, o loop while continuará executando até que uma condição específica se torne verdadeira ou até encontrar a palavra reservada break. Assim, o while oferece maior flexibilidade no controle de repetições, pois a condição de parada pode ser definida durante a execução. Além disso, o uso do break é útil quando precisamos interromper o loop antes que a condição de parada natural seja atingida. Portanto, o while permite um controle dinâmico e eficiente sobre o fluxo de execução.

For

Quando usamos o for, sabemos exatamente o número de vezes que o loop será repetido. Entretanto, se o loop encontrar o break, ele pode sair antes de completar todas as repetições. Por exemplo, nos exemplos abaixo, percorremos todas as letras da string e as imprimimos. Dessa forma, conseguimos controlar a iteração de maneira mais previsível, mas ainda com a flexibilidade de interromper a execução sempre que necessário. Portanto, o for nos oferece tanto previsibilidade quanto controle dinâmico sobre o fluxo de execução.

For , Else

Agora de forma resumida em uma linha.

Percorrendo uma lista e fazendo uma pergunta

Comando Continue

Comando Pass

Usamos o comando pass quando sabemos que vamos desenvolver uma função, mas ainda não implementamos seu conteúdo. Nesse caso, declaramos a função e, para evitar erros, colocamos pass no corpo dela. Assim, garantimos que o código seja executado sem problemas, mesmo com a função incompleta. Dessa forma, conseguimos continuar o desenvolvimento sem interrupções, permitindo que voltemos à função mais tarde para adicionar sua lógica. Portanto, o pass é uma solução prática enquanto o código ainda está em desenvolvimento.

Referências: