• 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 2. Conditions

Schwierigkeit:

Aufgabe«Lieferzeit»

💻 Python

Sie arbeiten als Programmierer in der Firma "Express Logistics". Ihre erste ernsthafte Aufgabe — Erstellen Sie einen Rechner für Manager, die die endgültige Zeit und die Kosten für die Lieferung eines Pakets berechnen. Die Berechnungen hängen von mehreren Faktoren ab: dem Liefergebiet, dem Gewicht des Pakets, der Bestellzeit und der Art der Lieferung (normal oder express).

Berechnungsregeln:

  1. Grundtarife für Gebiete:
    • "Zentrum" - 30 Minuten, Grundkosten - 150 Rubel.
    • "Schlafgebiet" : Grundzeit - 60 Minuten, Grundkosten - 200 Rubel.
    • "Industriegebiet" : Grundzeit - 90 Minuten, Grundkosten - 250 Rubel.
    • Wenn ein anderes Gebiet eingegeben wird, soll das Programm melden, dass es nicht bedient wird.
  2. Gewichtszuschlag:
    • Wenn das Gewicht des Pakets strikt größer als 10 kg ist, werden 15 Minuten zur Lieferzeit hinzugefügt und zu den Kosten — 50 Rubel. Dieser Zuschlag wird nach der Auswahl des Grundtarifs angewendet.
  3. Stoßzeit:
    • Stoßzeiten sind von 8 bis 10 Uhr morgens (einschließlich) und von 17 bis 20 Uhr abends (einschließlich) . Wenn die Bestellung während der Stoßzeit aufgegeben wird, werden 30 Minuten zur Lieferzeit hinzugefügt, und die Gesamtkosten (bereits unter Berücksichtigung des möglichen Gewichtszuschlags) erhöhen sich um 20% (multipliziert mit 1,2).
  4. Express-Lieferungsmodifikator:
    • Wenn der Liefertyp "Express" ausgewählt wird, wird die gesamte berechnete Zeit (bereits unter Berücksichtigung von Gewicht und Stoßzeit) halbiert (ganzzahlige Division), und die Gesamtkosten (ebenfalls mit allen Zuschlägen) verdoppeln sich .

Ziel:
Schreiben Sie ein Programm, das alle erforderlichen Daten vom Benutzer abfragt und die endgültige Zeit und die Kosten der Lieferung ausgibt. Alle Berechnungen sollten nacheinander in der angegebenen Reihenfolge angewendet werden.

Eingabeformat

Der Name des Bereichs (Zeile)
Das Gewicht des Pakets (Materialnummer)
Die Bestellung (eine ganze Stundenzahl, 0-23)
Die Art der Lieferung (Zeile, „Standard“ oder „Express“)

Ausgabeformat

Die endgültige Zeit und Kosten (Zeile) oder eine Nachricht, dass das Gebiet nicht bedient wird (Zeile).

Beispiel

Eingabe

Zentrum
5.5
14
Standard

Ausgabe

Die endgültige Lieferzeit: 30 Minuten. Endgültige Kosten: 150 Rubel.

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
# Запрашиваем у пользователя все необходимые данные для расчета
district = input()          # Название района доставки (строка)
weight = float(input())     # Вес посылки в кг (вещественное число)
hour = int(input())         # Час оформления заказа от 0 до 23 (целое число)
delivery_type = input()     # Тип доставки: "стандарт" или "экспресс" (строка)

time = 0  # Переменная для хранения итогового времени в минутах
cost = 0  # Переменная для хранения итоговой стоимости в рублях
is_valid_district = True # Флаг для проверки, обслуживается ли район

# Шаг 1: Определяем базовое время и стоимость в зависимости от района
if district == "Центральный":
    time = 30
    cost = 150
elif district == "Спальный":
    time = 60
    cost = 200
elif district == "Промышленный":
    time = 90
    cost = 250
else:
    # Если район не найден в списке, устанавливаем флаг в False
    is_valid_district = False

# Проверяем, был ли найден район. Если нет, то дальнейшие расчеты не нужны.
if is_valid_district:
    # Шаг 2: Применяем наценку за вес, если он больше 10 кг
    if weight > 10:
        time = time + 15
        cost = cost + 50

    # Шаг 3: Проверяем, попадает ли час заказа в час пик
    # Условие "И": (hour >= 8 и hour <= 10) - утренний пик
    # Условие "И": (hour >= 17 и hour <= 20) - вечерний пик
    # Условие "ИЛИ" между ними: or
    is_rush_hour = (hour >= 8 and hour <= 10) or (hour >= 17 and hour <= 20)
    if is_rush_hour:
        time = time + 30
        cost = cost * 1.2 # Увеличиваем стоимость на 20%

    # Шаг 4: Применяем модификатор для экспресс-доставки
    if delivery_type == "экспресс":
        time = time / 2 # Сокращаем время вдвое
        cost = cost * 2 # Увеличиваем стоимость вдвое

    # Выводим итоговый результат, округляя значения до целых чисел для аккуратности
    print(f"Итоговое время доставки: {int(time)} минут. Итоговая стоимость: {int(cost)} руб.")
else:
    # Если флаг is_valid_district остался False, выводим сообщение об ошибке
    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!