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

课程 2. Conditions

难度:

任务«配送时间»

💻 Python

你在"极速物流"公司担任程序员。你的第一个重要任务——为经理们创建一个计算器,用于计算单个包裹的最终配送时间和费用。计算取决于几个因素:配送区域、包裹重量、下单时间以及配送类型(普通或加急)。

计算规则:

  1. 区域基本费率:
    • "中心区" - 基础时间 30 分钟,基础费用 150 卢布。
    • "住宅区":基础时间 60 分钟,基础费用 200 卢布。
    • "工业区":基础时间 90 分钟,基础费用 250 卢布。
    • 如果输入任何其他区域,程序应报告该区域不在服务范围内。
  2. 重量附加费:
    • 如果包裹重量 严格大于 10 公斤,则配送时间增加 15 分钟,费用增加 50 卢布。此附加费在 选定 基础费率之后应用。
  3. 高峰时段:
    • 高峰时段为 早上 8 点到 10 点(含) 和 下午 17 点到 20 点(含)。如果在高峰时段下单,配送时间增加 30 分钟,总费用(已考虑可能的重量附加费) 增加 20%(乘以 1.2)。
  4. 加急配送修正:
    • 如果选择"加急"配送类型,则总计算时间(已考虑重量和高峰时段) 减少一半 (整数除法),总费用(同样包含所有附加费) 翻倍 。

目标:
编写一个程序,向用户请求所有必要数据,并显示最终的配送时间和费用。所有计算应按照指定顺序依次应用。

输入格式

区域名称(线路)
包裹重量(物料编号)
订单时间(整点小时数,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 的问题——我可以解释函数、方法,并帮助你完成当前任务!