• 1
    Eingabe und Ausgabe
    • Aufgaben
  • 2
    Bedingungen
    • Aufgaben
  • 3
    For-Schleife
    • Aufgaben
  • 4
    Zeichenketten
    • Aufgaben
  • 5
    While-Schleife
    • Aufgaben
  • 6
    Listen
    • Aufgaben
  • 7
    2D-Arrays
    • Aufgaben
  • 8
    Wörterbücher
    • Aufgaben
  • 9
    Mengen
    • Aufgaben
  • 10
    Funktionen und Rekursion
    • Aufgaben
  • к

Lektion 1. Entering and output of data

Schwierigkeit:

Aufgabe«Einzigartige Bestellungen»

💻 Python

Das Restaurant beschloss, die Anzahl der einzigartigen Kunden und den Betrag, den jeder von ihnen bezahlt hat, zu ermitteln. Schreiben Sie ein Programm, das ein Wörterbuch mit Kunden akzeptiert und die einzigartigen Kunden sowie ihre Gesamtkosten im Lokal zurückgibt.

Eingabeformat

Die erste Zeile enthält eine einzelne Zahl n & mdash; die Anzahl der Transaktionsdatensätze. Jede der folgenden n Zeilen enthält den Namen des Kunden (Zeile ohne Leerzeichen) und den Kaufbetrag (eine ganze Zahl), getrennt durch ein Leerzeichen.

Ausgabeformat

Eine Zeile, die das Python-Wörterbuch enthält, wobei die Schlüssel & mdash; die eindeutigen Kundennamen und die Werte & mdash; deren Gesamtkosten sind.

Beispiel

Eingabe

4
Peter 300
Anna 150
Peter 100
Anna 400

Ausgabe

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

Hinweis

There will be no clue here, decide for yourself!

main.py
Test 1
Test 2
Test 3
Test 4
Test 5
Test 6
Test 7
Test 8
Test 9
Test 10
Entwicklerlösung
# Инициализируем пустой словарь для хранения итоговых сумм по клиентам
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({})

🎉 Glückwunsch! 🎉

Du hast die Aufgabe hervorragend gelöst! Es war schwierig, aber du hast die Lösung gefunden. Du bist dem Meister einen Schritt näher! Mach weiter so.

AD

Werbung

red-snake blue-snake green-snake

Führe deinen Code aus...

KI-Assistent

Hallo! Ich bin dein Programmier-Assistent. Stelle mir beliebige Fragen zu Python — ich erkläre Funktionen, Methoden und helfe dir bei der aktuellen Aufgabe!