
Exercícios de Python: 10 questões com solução para iniciantes

Quando começamos a dar os primeiros passos no mundo da programação com Python, um dos conceitos comuns que encontramos é o da função range
. Mas, afinal de contas, o que é esse tal de range
em Python? Por que ele é tão importante para quem está aprendendo a programar?
Neste artigo, você vai descobrir o que é a função range
em Python e como ela pode ser usada para estruturar seus loops e sequências numéricas de maneira eficiente. Abordaremos os argumentos que ela aceita, bem como alguns casos comuns de uso. Vamos lá!
range
em Python?A função range
serve para criar uma sequência de números. Você pode passar um número único como argumento para a função, como range(10)
, para criar uma sequência numérica indo de zero até o número, sem incluí-lo. Adicionalmente, é possível escolher um número de início (por padrão, 0
) e de “pulo” ou intervalo da sequência (por padrão, 1
).
# Sequência de inteiros de 0 a 9
seq_numeros = range(10)
print(seq_numeros)
TestarNeste caso, a função range(10)
preparou uma sequência de números de 0 a 9 para nós. No entanto, para visualizarmos essa sequência, precisamos convertê-la em uma lista de Python:
seq_numeros = range(10)
print(list(seq_numeros))
# output:
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Testarrange
?O range
é a principal forma de criar sequências numéricas em Python. Ele está incluso na biblioteca padrão de Python e é uma das funções built-in da linguagem. Portanto, não é preciso importar nada para ter acesso a ela.
Um dos usos mais comuns da função range
em Python é para gerar números sobre os quais podemos iterar sobre em um loop.
range
em PythonEmbora tanto as listas quanto a função range
sejam usadas para trabalhar com sequências de valores, elas possuem algumas distinções fundamentais. Enquanto as listas são mutáveis e podem conter diferentes tipos de dados, o objeto range
é imutável e gera sequências numéricas sob demanda, otimizando o uso de memória.
Por exemplo, uma lista é definida entre colchetes e pode conter uma mistura de tipos de dados:
# Criando uma lista com diferentes tipos de dados
minha_lista = [1, 'Dois', True]
print(minha_lista)
TestarEm contrapartida, o range
, como visto anteriormente, é invocado através de uma função própria na qual determinamos o valor final da sequência de números. Para visualizar uma lista de números de 0 a 9, por exemplo, podemos comparar as abordagens:
numeros_lista = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(numeros_lista)
numeros_range = range(10)
print(list(numeros_range))
TestarÉ importante salientar que um range
em si não é uma lista, mas sim um objeto próprio do Python que gera os números conforme necessário. Isso o torna eficiente em termos de memória: se escrevermos range(1000000)
, os números não são computados de antemão. O range
apenas mantém a lógica necessária para criar os números, um a um.
Um ponto importante a ser destacado é que a função range()
não gera todos os números de uma vez e os armazena na memória. Em vez disso, ela cria um objeto do tipo range
que é um iterável. Isso significa que os números são gerados sob demanda, o que é muito mais eficiente em termos de uso de memória, especialmente para sequências grandes.
O range
em Python é uma função flexível, que aceita até três argumentos: o fim (stop), início (start) e pulo (step) da sequência. Dessa forma, conseguimos ajustar o comportamento da sequência numérica gerada, de acordo com a necessidade.
O stop é o ponto final da nossa sequência. Quando passamos apenas um valor para o range, estamos passando o valor de stop.
Note que o valor de stop nunca aparece incluso na sequência numérica. Se utilizarmos range(5)
, estamos dizendo “crie números de 0 até 4, avançando de um a um”.
Quando queremos informar de onde a sequência deve começar, usamos o start. Isso é bastante útil quando não queremos iniciar a contagem a partir de zero.
Quando passamos dois argumentos para o range
, o primeiro argumento corresponde ao valor de start. Por exemplo, range(3, 8)
gera os números de 3 a 7, avançando de um a um.
O step define o tamanho do “pulo” entre os números na sequência. Por padrão, esse valor é 1
, o que significa que avançamos pelos números de um a um.
Se quisermos apenas números pares, poderíamos criar um range
um pulo de 2
, como na sequência range(2, 11, 2)
. Isso geraria a sequência 2, 4, 6, 8, 10.
Note que o step só aparece quando passamos 3 argumentos para a função range
. Ao combinarmos start, stop e step, somos capazes de criar sequências sob medida!
Podemos ver todos os argumentos da função range em ação no trecho de código a seguir. Nele, criamos uma sequência numérica de 3 a 9, pulando de 3 em 3:
seq_numeros = range(3, 10, 3)
print(list(seq_numeros))
# output:
# [3, 6, 9]
Testarrange
Agora que já sabemos o que é a função range
e como seus argumentos funcionam, vamos aplicar esse conhecimento em alguns exemplos práticos.
for i in range
em PythonPodemos combinar um loop for
com a função range
para fazer uma determinada ação um certo número de vezes:
# Repetindo uma frase 5 vezes
for i in range(5):
print("Estou programando em Python!")
TestarObserve que a variável numérica do range
não é usada. Apenas precisamos defini-la para satisfazer a sintaxe do loop. Quando isso acontece, os programadores mais experientes em Python costumam utilizar _
como nome de variável, justamente como forma de indicar que ela não é relevante:
# Repetindo uma frase 5 vezes
for _ in range(5):
print("Estou programando em Python!")
Testarrange len
em PythonA função range
é frequentemente combinada com a função len
para gerar índices de uma lista. Assim é possível pegar cada um dos elementos da lista a partir do seu índice:
cores = ['vermelho', 'azul', 'verde']
for i in range(len(cores)):
cor = cores[i]
print(f'Cor no índice {i} é: {cor}')
TestarDito isso, uma dica em Python é utilizar a função enumerate
nestes casos, que já retorna cada elemento juntamente de seu índice em um loop:
cores = ['vermelho', 'azul', 'verde']
for i, cor in enumerate(cores):
print(f'Cor no índice {i} é: {cor}')
Testarrange
Para criar uma contagem regressiva com um range
, podemos passar um valor negativo para o step:
# Contagem regressiva: 5, 4, 3, 2, 1
for i in range(5, 0, -1):
print(i)
TestarEssa construção pode ser um pouco confusa, porque o valor de start precisa ser maior que o stop. Mas, se preferir, pode também passar um range
qualquer para a função reversed
:
# Contagem regressiva: 5, 4, 3, 2, 1
for i in reversed(range(1, 6)):
print(i)
Testarrange
decrescentePara criar um range
decrescente, basta passar um pulo negativo. Assim invertemos o range
, que passa a ser gerado do seu maior número para o menor:
for i in range(10, 0, -1):
print(f'Contagem: {i}')
TestarAo dominar a função range
, você abre um leque de possibilidades para controlar seus loops em Python e gerar sequências numéricas de maneira eficiente. Ela é uma ferramenta indispensável no seu kit de programação Python.
Então, o que você está esperando? Comece a agora mesmo com o curso gratuito Python para Iniciantes, da Asimov Academy, e aprenda sobre range
, loops, variáveis e muito mais!
Aprenda a programar e desenvolva soluções para o seu trabalho com Python para alcançar novas oportunidades profissionais. Aqui na Asimov você encontra:
Comentários
30xp