🎉 ¡Felicidades! 🎉
¡Has resuelto la tarea brillantemente! Era un reto difícil, pero encontraste la solución correcta. ¡Estás un paso más cerca de dominar la programación! Sigue así, cada etapa superada te hace más fuerte.
ProgerLib Python para todos
El restaurante decidió averiguar el número de clientes únicos y cuánto pagó cada uno de ellos. Escriba un programa que acepte un diccionario con clientes y devuelva los clientes únicos y sus costos totales en el establecimiento.
La primera línea contiene un único número n & mdash; El número de registros de transacciones. Cada una de las siguientes n líneas contiene el nombre del cliente (línea sin espacios) y el monto de la compra (un número entero), separados por un espacio.
Una línea que contiene el diccionario de Python, donde las claves & mdash; son nombres únicos de clientes, y los valores & mdash; son sus costos totales.
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({})
🎉 ¡Felicidades! 🎉
¡Has resuelto la tarea brillantemente! Era un reto difícil, pero encontraste la solución correcta. ¡Estás un paso más cerca de dominar la programación! Sigue así, cada etapa superada te hace más fuerte.
AD
Publicidad
Ejecutando tu código...