• 1
    Entrada e saída
    • Tarefas
  • 2
    Condições
    • Tarefas
  • 3
    Loop for
    • Tarefas
  • 4
    Strings
    • Tarefas
  • 5
    Loop while
    • Tarefas
  • 6
    Listas
    • Tarefas
  • 7
    Matrizes 2D
    • Tarefas
  • 8
    Dicionários
    • Tarefas
  • 9
    Conjuntos
    • Tarefas
  • 10
    Funções e recursão
    • Tarefas
  • к

Lição 1. Entering and output of data

Dificuldade:

Tarefa«Pedidos únicos»

💻 Python

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.

Formato de entrada

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.

Formato de saída

Uma linha contendo o dicionário Python, onde as chaves — são nomes únicos de clientes, e os valores — são seus custos totais.

Exemplo

Entrada

4
Peter 300
Anna 150
Peter 100
Anna 400

Saída

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

Dica

There will be no clue here, decide for yourself!

main.py
Teste 1
Teste 2
Teste 3
Teste 4
Teste 5
Teste 6
Teste 7
Teste 8
Teste 9
Teste 10
Solução do desenvolvedor
# Инициализируем пустой словарь для хранения итоговых сумм по клиентам
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

red-snake blue-snake green-snake

Executando seu código...

Assistente de IA

Olá! Sou seu assistente de programação. Faça qualquer pergunta sobre Python — posso explicar funções, métodos e ajudá-lo com a tarefa atual!