Funções como Sub-rotinas

python
0 – Python
7 – Imperativa / Procedural
7.1 – Sequencia (linha a linha)
7.2 – Condicionais (if/elif/else)
7.3 – Lacos (for, while)
7.4 – Funcoes como sub-rotinas
LEGENDA
Nivel_1
Nivel_2
Nivel_3

Funções são blocos de código reutilizáveis com um nome. Elas funcionam como sub-rotinas que executam uma tarefa específica. Primeiramente, funções evitam repetição de código (DRY). Por exemplo, você escreve uma fórmula uma vez e reutiliza. Além disso, funções dividem problemas grandes em partes menores. A voz passiva é usada aqui: “o código é organizado em blocos lógicos”. Quando utilizar funções como sub-rotinas? Em praticamente todo programa. Também para isolar funcionalidades e facilitar testes. Python usa def para definir funções. Vamos explorar criação, parâmetros e retorno de valores. Três subtítulos guiarão você pelo mundo das funções. Ao final, você escreverá código modular e reutilizável.

Criando e chamando funções básicas

Use def nome(): para definir uma função. O corpo da função fica indentado abaixo da definição. Para executar a função, chame-a pelo nome com parênteses. Quando usar funções simples? Para agrupar instruções relacionadas. A voz passiva é aplicada: “os argumentos são passados entre parênteses”. Exemplo de funções básicas:

Funções tornam o código mais organizado e legível. Cada função deve ter uma única responsabilidade clara.

Parâmetros: passando dados para funções

Parâmetros são variáveis que a função recebe para processar. Python suporta parâmetros posicionais e nomeados. Argumentos padrão tornam parâmetros opcionais. Quando usar diferentes tipos? Para flexibilidade na chamada. A voz passiva é aplicada: “os valores são passados na ordem definida”. Exemplo de parâmetros:

Parâmetros flexíveis tornam funções reutilizáveis. Escolha o tipo certo para cada situação.

Escopo, docstrings e boas práticas

Variáveis dentro da função são locais (escopo local). Variáveis fora são globais (use global para modificar). Docstrings documentam o propósito da função. Quando usar escopo global? Evite ao máximo. Prefira passar valores como parâmetros e retornar resultados. A voz passiva é aplicada: “a documentação é gerada automaticamente”. Exemplo de escopo e documentação:

Funções são o bloco de construção da programação modular. A fórmula da reutilização com funções: \(R = \frac{\text{código reutilizado}}{\text{código total}} \times 100\%\) Quanto maior, melhor o design do seu programa. Use funções para evitar repetição e organizar lógica. Cada função deve fazer uma coisa e fazer bem. Seu código será mais fácil de testar e manter.

Laços em Python

python
0 – Python
7 – Imperativa / Procedural
7.1 – Sequencia (linha a linha)
7.2 – Condicionais (if/elif/else)
7.3 – Lacos (for, while)
7.4 – Funcoes como sub-rotinas
LEGENDA
Nivel_1
Nivel_2
Nivel_3

Laços (loops) executam um bloco de código múltiplas vezes. Eles são essenciais para processar coleções e repetir tarefas. Primeiramente, for itera sobre sequências como listas. Por exemplo, for item in lista: print(item). Além disso, while repete enquanto uma condição for verdadeira. Assim, você evita escrever o mesmo código várias vezes. Consequentemente, programas ficam mais curtos e manuteníveis. Quando utilizar cada laço? for para número conhecido de iterações. while para repetições baseadas em condição. Por outro lado, evite loops infinitos sem controle. Python também tem break e continue para controle. Então, vamos explorar sintaxe, padrões e boas práticas. Três subtítulos guiarão você pelos laços em Python. Portanto, ao final, você dominará a repetição de código eficiente.

For: iterando sobre sequências

for percorre qualquer iterável: listas, strings, ranges. Ele atribui cada elemento à variável do laço. Quando usar for? Em coleções de tamanho conhecido. Também para processar arquivos linha a linha. Além disso, for é mais legível que while para coleções. Exemplo de for:

for é o laço mais usado em Python. Ele é limpo, legível e evita erros de índice. Portanto, prefira for sempre que possível.

While: repetindo baseado em condição

while executa enquanto a condição for verdadeira. Cuidado com loops infinitos: a condição precisa mudar. Quando usar while? Em número desconhecido de repetições. Por exemplo, aguardar entrada do usuário ou processar dados. Assim, você tem controle total sobre quando parar. Exemplo de while:

while é poderoso para loops baseados em condição. Sempre garanta que a condição eventualmente se torne falsa. Portanto, use while quando o número de iterações for incerto.

Break, continue e else em laços

break encerra o laço imediatamente. continue pula para a próxima iteração. else executa se o laço terminou sem break. Quando usar esses comandos? Para controle fino de fluxo. Além disso, eles tornam o código mais expressivo. Exemplo completo:

Laços são fundamentais para processamento repetitivo. A fórmula da complexidade de um laço é: \(T = \text{iterações} \times \text{tempo\_por\_iteração}\) Use for para coleções e while para condições. break e continue dão controle refinado. Portanto, mantenha laços simples e evite aninhamento excessivo. Seu código será mais eficiente e fácil de entender. Finalmente, pratique com diferentes tipos de laços.