🎉 تهانينا! 🎉
لقد حللت المهمة ببراعة! كان صعبًا لكنك وجدت الحل الصحيح. أنت خطوة أقرب إلى الاحتراف! استمر، كل مرحلة تجعلك أقوى.
ProgerLib Python للجميع
تغيير السمة
قرر المطعم معرفة عدد العملاء الفريدين والمبلغ الذي دفعه كل منهم. اكتب برنامجًا يقبل قاموسًا يحتوي على العملاء ويعيد العملاء الفريدين وإجمالي تكاليفهم في المؤسسة.
يحتوي السطر الأول على رقم واحد n — عدد سجلات المعاملات. يحتوي كل سطر من الأسطر n التالية على اسم العميل (سطر بدون مسافات) ومبلغ الشراء (عدد صحيح)، مفصولين بمسافة.
سطر واحد يحتوي على قاموس بايثون، حيث المفاتيح & mdash; هي أسماء العملاء الفريدة، والقيم & mdash; هي إجمالي تكاليفهم.
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
إعلان
جارٍ تشغيل الكود...