• 1
    数据输入输出
    • 任务
  • 2
    条件语句
    • 任务
  • 3
    for循环
    • 任务
  • 4
    字符串
    • 任务
  • 5
    while循环
    • 任务
  • 6
    列表
    • 任务
  • 7
    二维数组
    • 任务
  • 8
    字典
    • 任务
  • 9
    集合
    • 任务
  • 10
    函数与递归
    • 任务
  • к

课程 1. Entering and output of data

难度:

任务«唯一的订单»

💻 Python

餐厅决定统计每位独特顾客的数量以及他们各自支付的总金额。编写一个程序,接收包含顾客信息的字典,并返回独特顾客及其在餐厅的总消费金额。

输入格式

第一行包含一个数字 n — 交易记录的数量。接下来的 n 行中,每行包含客户名称(不含空格的字符串)和购买金额(整数),两者之间用空格分隔。

输出格式

一行包含Python字典,其中键是唯一的客户名称,值是其总花费。

示例

输入

4
Peter 300
Anna 150
Peter 100
Anna 400

输出

{'Peter': 400, 'Anna': 550}

提示

There will be no clue here, decide for yourself!

main.py
测试 1
测试 2
测试 3
测试 4
测试 5
测试 6
测试 7
测试 8
测试 9
测试 10
开发者解答
# Инициализируем пустой словарь для хранения итоговых сумм по клиентам
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

广告

red-snake blue-snake green-snake

正在运行代码...

AI助手

你好!我是你的编程助手。随时向我提问关于 Python 的问题——我可以解释函数、方法,并帮助你完成当前任务!