Olá, Giovanni. Como vai?
Parabéns pela organização do seu código! Você foi além do básico ao utilizar funções para modularizar o programa, o que é uma excelente prática de desenvolvimento. Dividir o código em funções como titulo, valores e soma_valores torna o script muito mais fácil de ler, testar e manter.
Gostaria de destacar alguns pontos técnicos de alta qualidade na sua implementação:
- Tratamento de Exceções: O uso do
try/except com ValueError dentro do laço while é fundamental para evitar que o programa feche inesperadamente se o usuário digitar um texto em vez de um número. - Validação de Entrada: Você criou um segundo laço
while apenas para validar a resposta "S" ou "N". Isso garante que o programa só prossiga com uma instrução válida, o que melhora a robustez do software. - Boas Práticas de Execução: O uso do
if __name__ == '__main__': é o padrão profissional em Python. Ele garante que a função main() só seja executada se o script for rodado diretamente, e não quando for importado como um módulo por outro arquivo.
Para agregar ainda mais valor ao seu projeto, deixo duas sugestões:
- Manipulação de Listas: Se a lista de valores for vazia (caso o usuário decida não digitar nenhum número logo no início), a função
sum() retornará 0, o que está correto. No entanto, você poderia adicionar uma verificação simples antes de imprimir, como if not lista: print("Nenhum valor foi inserido."). - Formatação de Moeda: Como você mencionou "soma total das receitas" no
print, pode ser interessante formatar o resultado para o padrão monetário brasileiro.
Veja como ficaria a função soma_valores com essa pequena melhoria:
def soma_valores(lista):
if not lista:
print('Nenhum valor foi inserido para o cálculo.')
else:
soma = sum(lista)
# Formata o valor com duas casas decimais e substitui o ponto pela vírgula
soma_formatada = f'{soma:.2f}'.replace('.', ',')
print(f'A soma total das receitas é: R$ {soma_formatada}')
Dominar laços de repetição e funções dessa forma é o que separa um iniciante de um programador que entende a arquitetura da linguagem.
Espero que possa ter lhe ajudado!