Você está na página 1de 5

Introdução aos Laços de Repetição em Python

Os laços de repetição são estruturas fundamentais em programação que per-


mitem executar uma sequência de instruções múltiplas vezes. Em Python, ex-
istem duas formas principais de laços de repetição: o for e o while.
O laço for é utilizado quando se conhece o número de vezes que um bloco
de código deve ser executado. Esse tipo de laço é especialmente útil quando
se quer iterar sobre uma sequência, como uma lista ou uma string. A sintaxe
básica do laço for em Python é a seguinte:

for variável in sequ^


encia:
# bloco de código a ser executado

Aqui, variável é a variável de iteração que assume o valor de cada elemento


da sequência em cada iteração do laço.
Já o laço while é utilizado quando não se sabe exatamente quantas vezes
um bloco de código deve ser executado. O laço while executa o bloco de código
enquanto uma condição especificada for verdadeira. A sintaxe básica do laço
while em Python é a seguinte:

while condiç~
ao:
# bloco de código a ser executado

Aqui, condição é uma expressão booleana que é avaliada a cada iteração do


laço. O laço while continua a executar o bloco de código enquanto a condição
for verdadeira.
Ambos os laços de repetição são extremamente úteis em programação, per-
mitindo criar algoritmos poderosos e flexı́veis. No entanto, é importante tomar
cuidado ao utilizar laços de repetição, pois se não forem bem implementados
podem levar a erros e atrasos no processamento de dados.

A recursividade é um conceito fundamental em programação que permite


que uma função chame a si mesma para resolver um problema. Em Python,
a recursividade é implementada de forma simples, utilizando a própria função
como um bloco de código que é executado repetidas vezes até que a condição
de parada seja alcançada. A recursividade é especialmente útil quando se lida
com problemas que podem ser divididos em subproblemas menores e similares
ao problema original, como algoritmos de ordenação ou busca em árvores. No
entanto, é importante tomar cuidado ao utilizar recursividade, pois se não for
bem implementada pode levar a problemas de desempenho e falhas na execução
do programa.

1
Recursividade e Funções em Python

1 Recursividade
A recursividade é uma técnica de programação que permite que uma função
chame a si mesma para resolver um problema. Em Python, a recursividade
é implementada de forma simples, utilizando a própria função como um bloco
de código que é executado repetidas vezes até que a condição de parada seja
alcançada. Um exemplo clássico de uso de recursão é o cálculo de um fatorial.
Veja o exemplo abaixo:
def fatorial(n):
if n == 1:
return 1
else:
return n * fatorial(n - 1)
Neste exemplo, a função fatorial chama a si mesma passando o valor de
n - 1 como parâmetro, até que o valor de n seja igual a 1, momento em que
a recursão para. É importante tomar cuidado ao utilizar recursividade, pois se
não for bem implementada pode levar a problemas de desempenho e falhas na
execução do programa.

2 Funções
Em Python, as funções são blocos de código que podem ser reutilizados em
diferentes partes de um programa. A definição de uma função é feita com a
palavra reservada def, seguida pelo nome da função e pelos parâmetros entre
parênteses. O corpo da função é definido com um bloco de código indentado.

2.1 def
Veja um exemplo de definição de função abaixo:
def somar(a, b):
return a + b
Neste exemplo, a função somar recebe dois parâmetros, a e b, e retorna a
soma dos dois valores.

2.2 lambda
Além da definição de função com a palavra reservada def, Python também
permite a criação de funções anônimas, utilizando a palavra reservada lambda.
As funções lambda são úteis quando se deseja criar funções simples que podem
ser utilizadas em um contexto especı́fico. Veja um exemplo de função lambda
abaixo:

2
dobro = lambda x: x * 2

Neste exemplo, a função lambda dobro recebe um parâmetro x e retorna o


dobro do valor.

Parâmetros de Funções em Python


As funções em Python podem receber parâmetros que são utilizados como
entrada para o seu processamento. Existem três tipos de parâmetros em Python:
opcionais, posicionais e de palavras-chave.

3 Parâmetros Opcionais
Os parâmetros opcionais são aqueles que não são obrigatórios na chamada da
função. Em Python, é possı́vel definir um valor padrão para um parâmetro,
o que torna este parâmetro opcional na chamada da função. Veja o exemplo
abaixo:

def imprimir_mensagem(nome, sobrenome=’’, idade=0):


print(f’Nome: {nome} {sobrenome}, Idade: {idade}’)

imprimir_mensagem(’Maria’)
imprimir_mensagem(’Jo~
ao’, ’Silva’)
imprimir_mensagem(’Pedro’, ’Souza’, 30)

Neste exemplo, a função imprimir mensagem recebe três parâmetros, sendo


que sobrenome e idade possuem valores padrão vazios. Desta forma, na chamada
da função, o parâmetro sobrenome e idade são opcionais. Se nenhum valor for
passado para sobrenome ou idade, será utilizado o valor padrão definido na
função.

4 Parâmetros Posicionais
Os parâmetros posicionais são aqueles que são passados na ordem em que são
definidos na chamada da função. Veja o exemplo abaixo:

def somar(a, b):


return a + b

resultado = somar(5, 3)
print(resultado)

Neste exemplo, a função somar recebe dois parâmetros posicionais, a e b,


que são passados na chamada da função na mesma ordem em que são definidos
na função.

3
5 Parâmetros de Palavras-Chave
Os parâmetros de palavras-chave são aqueles que são passados na forma chave=valor
na chamada da função. Veja o exemplo abaixo:

def imprimir_mensagem(nome, sobrenome=’’, idade=0):


print(f’Nome: {nome} {sobrenome}, Idade: {idade}’)

imprimir_mensagem(nome=’Maria’, idade=25, sobrenome=’Silva’)

Neste exemplo, a função imprimir mensagem recebe três parâmetros, sendo


que a chamada da função utiliza os parâmetros de palavras-chave para passar os
valores para a função. Desta forma, a ordem em que os parâmetros são passados
na chamada da função não importa, desde que sejam identificados pela chave
correspondente.
Em Python, é possı́vel passar qualquer quantidade de parâmetros posicionais
e de palavras-chave para funções. Para isso, utilizamos o operador * para empa-
cotar os parâmetros posicionais em uma tupla e o operador ** para empacotar
os parâmetros de palavras-chave em um dicionário.
Para exemplificar, vamos criar uma função chamada soma que recebe dois
parâmetros posicionais e qualquer quantidade de parâmetros de palavras-chave.
A função soma os valores dos parâmetros posicionais e dos parâmetros de
palavras-chave e retorna o resultado.

def soma(a, b, **kwargs):


resultado = a + b
for valor in kwargs.values():
resultado += valor
return resultado

Agora, podemos chamar a função soma passando dois parâmetros posicionais


e qualquer quantidade de parâmetros de palavras-chave:

resultado1 = soma(1, 2)
resultado2 = soma(1, 2, c=3, d=4)
resultado3 = soma(1, 2, c=3, d=4, e=5)
print(resultado1) # Output: 3
print(resultado2) # Output: 10
print(resultado3) # Output: 15

No primeiro exemplo, a função soma recebe apenas os parâmetros posicionais


a=1 e b=2, resultando em um retorno de 3.
No segundo exemplo, a função soma recebe os parâmetros posicionais a=1 e
b=2 e os parâmetros de palavras-chave c=3 e d=4, resultando em um retorno
de 10.
No terceiro exemplo, a função soma recebe os parâmetros posicionais a=1
e b=2 e os parâmetros de palavras-chave c=3, d=4 e e=5, resultando em um
retorno de 15.

4
Além disso, também é possı́vel passar qualquer quantidade de parâmetros
posicionais sem empacotá-los em uma tupla. Para isso, utilizamos o operador *
antes do nome da lista de parâmetros posicionais. Por exemplo:

def soma(*args, **kwargs):


resultado = 0
for valor in args:
resultado += valor
for valor in kwargs.values():
resultado += valor
return resultado

resultado1 = soma(1, 2, 3)
resultado2 = soma(1, 2, 3, c=4, d=5)
print(resultado1) # Output: 6
print(resultado2) # Output: 15

No primeiro exemplo, a função soma recebe os parâmetros posicionais 1, 2


e 3, resultando em um retorno de 6.
No segundo exemplo, a função soma recebe os parâmetros posicionais 1, 2 e
3 e os parâmetros de palavras-chave c=4 e d=5, resultando em um retorno de
15.

Você também pode gostar