• 1
    डेटा I/O
    • कार्य
  • 2
    शर्तें
    • कार्य
  • 3
    for लूप
    • कार्य
  • 4
    स्ट्रिंग
    • कार्य
  • 5
    while लूप
    • कार्य
  • 6
    सूचियां
    • कार्य
  • 7
    2D मैट्रिक्स
    • कार्य
  • 8
    डिक्शनरी
    • कार्य
  • 9
    सेट
    • कार्य
  • 10
    फ़ंक्शन
    • कार्य
  • к

पाठ 2. Conditions

कठिनाई:

иконка человека красный иконка человека белая иконка человека зеленая Pythonlib

कार्य«डिलीवरी समय»

💻 Python

आप कंपनी "एक्सप्रेस लॉजिस्टिक्स" में एक प्रोग्रामर के रूप में काम करते हैं। आपका पहला गंभीर कार्य & mdash; प्रबंधकों के लिए एक कैलकुलेटर बनाना है जो एक पार्सल की अंतिम डिलीवरी समय और लागत की गणना करेगा। गणनाएँ कई कारकों पर निर्भर करती हैं: डिलीवरी क्षेत्र, पार्सल का वजन, ऑर्डर का समय और डिलीवरी का प्रकार (सामान्य या एक्सप्रेस)।


गणना नियम:



  1. क्षेत्रों के लिए मूल शुल्क:

    • "सेंट्रल" - आधार समय 30 मिनट, आधार लागत - 150 रूबल।

    • "स्लीपिंग" : आधार समय 60 मिनट, आधार लागत 200 रूबल।

    • "इंडस्ट्रियल" : आधार समय 90 मिनट, आधार लागत 250 रूबल।

    • यदि कोई अन्य क्षेत्र दर्ज किया जाता है, तो प्रोग्राम को रिपोर्ट करना चाहिए कि उस क्षेत्र में सेवा उपलब्ध नहीं है।



  2. वजन के लिए अधिभार:

    • यदि पार्सल का वजन   सख्ती से 10 किग्रा से अधिक   है, तो डिलीवरी समय में 15 मिनट जोड़े जाते हैं, और लागत में & mdash; 50 रूबल। यह अधिभार   बाद में   मूल शुल्क के चयन के बाद लागू किया जाता है।



  3. पीक आवर:

    • पीक आवर   सुबह 8 से 10 बजे तक (सम्मिलित)   और   शाम 5 से 8 बजे तक (सम्मिलित) । यदि ऑर्डर पीक आवर में रखा गया है, तो डिलीवरी समय में 30 मिनट जोड़े जाते हैं, और कुल लागत (पहले से ही वजन के लिए संभावित अधिभार को ध्यान में रखते हुए)   20% बढ़ जाती है   (1.2 से गुणा किया जाता है)।



  4. एक्सप्रेस डिलीवरी मॉडिफायर:

    • यदि डिलीवरी का प्रकार "एक्सप्रेस" चुना जाता है, तो कुल गणना किया गया समय (पहले से ही वजन और पीक आवर को ध्यान में रखते हुए)   2 गुना कम हो जाता है   (पूर्णांक विभाजन), और कुल लागत (सभी अधिभारों के साथ)   दोगुनी हो जाती है ।




उद्देश्य:
एक प्रोग्राम लिखें जो उपयोगकर्ता से सभी आवश्यक डेटा मांगे और अंतिम डिलीवरी समय और लागत प्रदर्शित करे। सभी गणनाएँ निर्दिष्ट क्रम में क्रमिक रूप से लागू की जानी चाहिए।

इनपुट फॉर्मेट

क्षेत्र का नाम (पंक्ति)
पैकेज का वजन (सामग्री संख्या)
ऑर्डर का समय (पूर्णांक घंटा संख्या, 0-23)
डिलीवरी का प्रकार (पंक्ति, "standard" या "express")

आउटपुट फॉर्मेट

अंतिम समय और लागत (पंक्ति) या एक संदेश कि क्षेत्र सेवा प्रदान नहीं किया जाता है (पंक्ति)।

उदाहरण

इनपुट

केंद्रीय
5.5
14
मानक

आउटपुट

अंतिम डिलीवरी का समय: 30 मिनट। अंतिम लागत: 150 रूबल।

संकेत

There will be no clue here, decide for yourself!

main.py
परीक्षण 1
परीक्षण 2
परीक्षण 3
परीक्षण 4
परीक्षण 5
परीक्षण 6
परीक्षण 7
परीक्षण 8
परीक्षण 9
परीक्षण 10
डेवलपर का समाधान
# Запрашиваем у пользователя все необходимые данные для расчета
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("Район не обслуживается")

🎉 बधाई! 🎉

आपने कार्य को शानदार ढंग से हल किया! यह कठिन था, लेकिन आपने सही उत्तर खोजा। आप प्रोग्रामिंग में महारत के करीब हैं! ऐसे ही जारी रखें।

AD

विज्ञापन

red-snake blue-snake green-snake

कोड चल रहा है...

AI सहायक

नमस्ते! मैं आपका प्रोग्रामिंग सहायक हूँ। Python के बारे में कोई भी सवाल पूछें — मैं functions, methods समझा सकता हूँ और मौजूदा task में मदद कर सकता हूँ!