Lista e índices: Peça ao usuário que digite 5 nomes e depois imprima cada nome acompanhado do seu índice na lista (use enumerate).
Passo 1
O que o enunciado pede:
- Peça ao usuário que digite exatamente 5 nomes.
- Armazene esses nomes em uma lista.
- Depois imprima cada nome acompanhado do seu índice na lista.
- Use a função
enumeratepara obter os índices.
Informações relevantes que o enunciado dá:
- Número de nomes:
. - Deve-se mostrar o índice de cada nome junto com o próprio nome.
- Deve-se usar
enumerate(em Python) para obter índices e elementos juntos.
Passo 2
Como vamos ler 5 nomes do usuário e guardar numa lista (passo a passo):
- Em Python, usamos
input()para ler uma linha digitada pelo usuário. - Para repetir 5 vezes, usamos um laço
forcomrange(5). A funçãorange(5)gera 5 valores:— mas aqui só usamos o laço para repetir 5 vezes; não precisamos desses valores para os índices finais. - Vamos criar uma lista vazia antes do laço com
nomes = []e, a cada iteração, usarnomes.append(nome)para guardar o nome lido.
Explicando cada parte: nomes = []cria uma lista vazia chamadanomes.for i in range(5):repete o bloco interno 5 vezes. A variávelitoma valores dea , mas usamos i+1apenas para exibir ao usuário “Digite o nome 1/5”, deixando a interface mais amigável.nome = input(f"Digite o nome {i+1}: ")lê o nome digitado e armazena na variávelnome.nomes.append(nome)adiciona o nome ao final da listanomes.
Passo 3
O que faz
enumerate e por que usar:enumerate(iterable, start=1)recebe um iterável (como nossa listanomes) e retorna pares(índice, elemento)em cada iteração.- O parâmetro
startdefine o valor inicial do índice. Se não passarstart, o índice começa em. Como normalmente queremos índices começando em quando mostramos “1º nome, 2º nome…”, vou usar start=1. - Exemplo curto: se
nomes = ["Ana", "Bruno"], entãoenumerate(nomes, start=1)produz(1, "Ana")e depois(2, "Bruno").
- Usar
enumerateevita que tenhamos que controlar um contador manualmente; ele já retorna índice e elemento ao mesmo tempo.
Passo 4
Como formatar a impressão de cada par índice-nome:
- Para montar a string que aparece na tela podemos usar f-strings:
print(f"{indice} - {nome}"). - Aqui
indiceenomesão as variáveis que vêm dofor indice, nome in enumerate(...). - Se preferir outra aparência, dá para usar
print(indice, nome)(separados por espaço) ouprint(f"{indice}. {nome}"). No exemplo abaixo usarei"{indice} - {nome}"porque fica claro.
Passo 5
Programa completo explicado linha a linha:
- Primeiro bloco: leitura dos 5 nomes e armazenamento.
nomes = []— cria a lista vazia.for i in range(5):— repete 5 vezes.nome = input(f"Digite o nome {i+1}: ")— pede o nome ao usuário (mostrando 1 a 5).nomes.append(nome)— guarda o nome na lista.
- Segundo bloco: imprimir cada nome com seu índice usando
enumerate.for indice, nome in enumerate(nomes, start=1):— itera sobre a lista retornando índice começando em 1.print(f"{indice} - {nome}")— imprime índice e nome formatados.
Passo 6
Exemplo de execução (simulação):
- Usuário digita: “Mariana”, “Carlos”, “João”, “Ana”, “Pedro” (em 5 entradas).
- Saída mostrada:
- 1 - Mariana
- 2 - Carlos
- 3 - João
- 4 - Ana
- 5 - Pedro
Isso mostra que o índice corresponde à ordem de inserção na lista.
Passo 7
Erros comuns na prova e dicas rápidas:
- Esquecer o
appende sobrescrever uma variável: lembre-se de usarnomes.append(nome)para acumular os nomes. - Usar
range(1,6)no laço de leitura pode funcionar, mas então teria que ajustar a mensagemDigite o nome {i}:; prefirorange(5)e mostrari+1para ser consistente. - Esquecer que
enumeratecomeça em 0 por padrão: se quiser índices a partir de 1, usestart=1. - Teste mentalmente com menos nomes para garantir lógica (ex.: 2 nomes) — ajuda a achar bugs rapidamente.
Passo 8
Motivação final: você já consegue fazer isso na prova sem medo. É um padrão muito comum: ler com
input(), guardar com append, e percorrer com enumerate. Respira, aplica esse passo a passo e manda ver!Resposta
nomes = []
for i in range(5):
nome = input(f"Digite o nome {i+1}: “)
nomes.append(nome)
for indice, nome in enumerate(nomes, start=1):
print(f”{indice} - {nome}")
for i in range(5):
nome = input(f"Digite o nome {i+1}: “)
nomes.append(nome)
for indice, nome in enumerate(nomes, start=1):
print(f”{indice} - {nome}")