🎉 恭喜! 🎉
你出色地完成了任务!这是一个不小的挑战,但你找到了正确答案。你离编程大师又近了一步!继续保持,每一步都让你更强大。
餐厅决定统计每位独特顾客的数量以及他们各自支付的总金额。编写一个程序,接收包含顾客信息的字典,并返回独特顾客及其在餐厅的总消费金额。
第一行包含一个数字 n — 交易记录的数量。接下来的 n 行中,每行包含客户名称(不含空格的字符串)和购买金额(整数),两者之间用空格分隔。
一行包含Python字典,其中键是唯一的客户名称,值是其总花费。
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({})
🎉 恭喜! 🎉
你出色地完成了任务!这是一个不小的挑战,但你找到了正确答案。你离编程大师又近了一步!继续保持,每一步都让你更强大。
AD
广告
正在运行代码...