1
resposta

Prática - Calculando o total de vendas

def calcular_total_vendas(vendas_str):
    # Divide a string em partes e converte cada valor para inteiro
    vendas = [int(valor) for valor in vendas_str.split()]
    total = sum(vendas)
    return total

# Exemplo de uso:
entrada = input("Digite os valores das vendas: ")
total = calcular_total_vendas(entrada)
print(f"O total de vendas foi: {total}")

Entrada:

Digite os valores das vendas: 250 75 420

Saída:

O total de vendas foi: 745
1 resposta

Olá, Aristóteles. Como vai?

Parabéns pela excelente resolução do desafio! O seu código está limpo, muito bem estruturado e segue ótimas práticas de programação em Python.

A sua escolha de usar a técnica de List Comprehension na linha vendas = [int(valor) for valor in vendas_str.split()] foi o ponto alto do código. Essa estrutura é o padrão ouro na comunidade Python para transformar dados de forma rápida e elegante.

Vamos analisar a lógica brilhante que você construiu em três etapas:

  • O método .split(): Como o usuário digita os valores separados por espaços em uma única linha (ex: "250 75 420"), o .split() corta esse texto nos espaços vazios e o transforma em uma lista de strings: ['250', '75', '420'].
  • Conversão de tipo com List Comprehension: O laço interno visita cada uma dessas strings e as converte em números inteiros (int), resultando na lista numérica [250, 75, 420].
  • A função sum(): Com a lista de números inteiros pronta, a função nativa sum() faz a soma de todos os elementos de forma extremamente rápida e performática.

Como você está estudando o capítulo de funções, uma excelente sugestão de boa prática para o mercado de trabalho é tornar as suas funções mais seguras e robustas. Em sistemas reais, o usuário pode acabar digitando uma letra por engano ou inserindo espaços extras, o que faria o método int() quebrar o programa com um erro de tipo (ValueError).

Para evitar que o programa pare de funcionar por causa de uma entrada incorreta, você pode adicionar um tratamento de erros com try/except dentro da sua função. Veja este exemplo adaptado:

def calcular_total_vendas(vendas_str):
    try:
        # O split() sem argumentos já remove automaticamente múltiplos espaços seguidos
        vendas = [int(valor) for valor in vendas_str.split()]
        return sum(vendas)
    except ValueError:
        # Caso o usuário digite algo que não seja um número inteiro
        return None

# Exemplo de uso com validação:
entrada = input("Digite os valores das vendas separados por espaço: ")
total = calcular_total_vendas(entrada)

if total is not None:
    print(f"O total de vendas foi: {total}")
else:
    print("Erro: Certifique-se de digitar apenas números inteiros válidos.")

Note também que, ao deixar o .split() sem nenhum argumento dentro dos parênteses, o Python ganha o superpoder de ignorar se o usuário digitou um, dois ou vários espaços seguidos entre os números, tornando seu código ainda mais inteligente contra falhas de digitação.

Continue com esse excelente nível de escrita de código e dedicação nos estudos!

Espero que possa ter lhe ajudado!