Faça um programa que leia um arquivo contendo o nome e o preço de diversos produtos (separados por linha), e calcule o total da compra.
Passo 1
Resumo: precisamos criar um programa que abra um arquivo texto, leia linha a linha o nome e o preço de cada produto e calcule a soma de todos os preços para exibir o total da compra.
Passo 2
Abrir o arquivo: pedir ao usuário o nome do arquivo, usar a função de abertura de arquivo para leitura (‘r’) e garantir o encoding correto (por exemplo, ‘utf-8’).
Passo 3
Ler e processar cada linha: iterar sobre as linhas do arquivo, remover espaços em branco das extremidades usando .strip() e pular linhas vazias.
Passo 4
Extrair nome e preço: dividir o conteúdo da linha em duas partes usando .rsplit(’ ', 1). A parte antes do último espaço será o nome, e a parte após será o preço.
Passo 5
Converter preço para número: usar float(preco_str) para transformar a string do preço em valor numérico e acumular esse valor numa variável total.
Passo 6
Exibir resultado: após fechar o arquivo, imprimir o total formatado com duas casas decimais.
Resposta
Programa em Python para calcular o total da compra
def main():
nome_arquivo = input(“Digite o nome do arquivo: “)
try:
with open(nome_arquivo, ‘r’, encoding=‘utf-8’) as arquivo:
total = 0.0
for linha in arquivo:
linha = linha.strip()
if not linha:
continue
# Divide em nome e preço (último campo)
nome, preco_str = linha.rsplit(’ ', 1)
preco = float(preco_str)
total += preco
print(f"Total da compra: R$ {total:.2f}”)
except FileNotFoundError:
print(f"Arquivo ‘{nome_arquivo}’ não encontrado.”)
except ValueError:
print(“Erro ao converter preço. Verifique o formato do arquivo.”)
nome_arquivo = input(“Digite o nome do arquivo: “)
try:
with open(nome_arquivo, ‘r’, encoding=‘utf-8’) as arquivo:
total = 0.0
for linha in arquivo:
linha = linha.strip()
if not linha:
continue
# Divide em nome e preço (último campo)
nome, preco_str = linha.rsplit(’ ', 1)
preco = float(preco_str)
total += preco
print(f"Total da compra: R$ {total:.2f}”)
except FileNotFoundError:
print(f"Arquivo ‘{nome_arquivo}’ não encontrado.”)
except ValueError:
print(“Erro ao converter preço. Verifique o formato do arquivo.”)
if name == ‘main’:
main()
main()