Oii, João.
Que bacana saber um pouco da sua história e ver seu retorno aos estudos de programação! É muito natural trazer a sintaxe e a estrutura de pensamento do Java, e essa bagagem de lógica vai te ajudar bastante.
Olhando o seu código, percebi um detalhe muito importante que vale a pena comentar, pois o resultado pode ter te enganado. Vamos analisar juntos?
O detalhe do range() e do índice
No seu código, você usou a estrutura:
for i in range(len(valores)):
soma = soma + i
Aqui acontece uma pegadinha comum. A função range(len(valores)) gera uma sequência de números que representam as posições (índices) da lista, e não os valores guardados nela.
Para a lista [10, 20, 30, 40, 50], o i vai valer: 0, 1, 2, 3, 4.
Ao fazer soma = soma + i, seu código está somando esses índices () e não os preços dos produtos ().
Como ajustar mantendo sua lógica "estilo Java"
Se você quiser manter o laço com o índice (o que é perfeitamente válido em várias situações), precisamos usar esse índice para acessar o valor dentro da lista, assim:
valores = [10, 20, 30, 40, 50]
soma = 0
for i in range(len(valores)):
# O ajuste principal é aqui: acessamos a lista 'valores' na posição 'i'
soma = soma + valores[i]
print("Soma das receitas:", soma)
O "jeito Python" (gabarito)
A solução do instrutor usa o for in direto na lista. O Python consegue percorrer cada item sem precisar saber a posição dele.
- Vantagem: O código fica mais limpo e direto, evitando erros de índice (como acessar uma posição que não existe).
- Leitura: Lê-se quase como "para cada numero em numeros".
Ambas as formas resolvem o problema (com o ajuste do índice), mas a segunda é a mais comum no dia a dia com Python por ser mais direta.
Parabéns por testar e compartilhar sua solução! Continue praticando e trazendo suas dúvidas.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!