🎉 Parabéns! 🎉
Você resolveu a tarefa brilhantemente! Foi difícil, mas você encontrou a solução certa. Você está um passo mais perto de dominar a programação! Continue assim.
ProgerLib Python para todos
O restaurante decidiu descobrir o número de clientes únicos e quanto cada um deles pagou. Escreva um programa que aceite um dicionário com clientes e retorne os clientes únicos e seus custos totais no estabelecimento.
A primeira linha contém um único número n & mdash; O número de registros de transações. Cada uma das n linhas seguintes contém o nome do cliente (linha sem espaços) e o valor da compra (um número inteiro), separados por um espaço.
Uma linha contendo o dicionário Python, onde as chaves — são nomes únicos de clientes, e os valores — são seus custos totais.
4
Peter 300
Anna 150
Peter 100
Anna 400
{'Peter': 400, 'Anna': 550}
# Инициализируем пустой словарь для хранения итоговых сумм по клиентам
client_totals = {}
# Считываем первое число - общее количество записей о покупках
try:
num_records = int(input())
# Проверяем, что количество записей не отрицательное
if num_records < 0:
# В случае отрицательного числа, считаем это некорректным вводом
# и выводим пустой словарь, так как транзакций не будет.
print({})
else:
# Запускаем цикл, который выполнится указанное количество раз
for _ in range(num_records):
# Считываем строку и разделяем ее на имя и сумму по пробелу
# .split() по умолчанию разделяет по пробелам и возвращает список строк
parts = input().split()
name = parts[0]
amount = int(parts[1])
# Используем метод словаря get(). Он безопасен и удобен.
# Если клиент (ключ 'name') уже есть в словаре, get() вернет его текущую сумму.
# Если клиента еще нет, get() вернет значение по умолчанию, которое мы указали (0).
# Затем к полученному значению мы прибавляем новую сумму и записываем результат в словарь.
client_totals[name] = client_totals.get(name, 0) + amount
# Выводим итоговый словарь с результатами
print(client_totals)
except (ValueError, IndexError):
# Эта часть кода сработает, если ввод некорректен.
# Например, если вместо числа введено слово, или в строке с транзакцией нет суммы.
# В таких случаях программа выведет пустой словарь, что является логичным
# поведением при невозможности обработать данные.
print({})
🎉 Parabéns! 🎉
Você resolveu a tarefa brilhantemente! Foi difícil, mas você encontrou a solução certa. Você está um passo mais perto de dominar a programação! Continue assim.
AD
Publicidade
Executando seu código...