#python
#python
Вопрос:
Спасибо всем за помощь. У меня получилось. Извините, если я задал глупый вопрос. Кажется, в некоторых местах у меня было слишком много пробелов, а затем моя команда enter_more просто продолжала цикл, но я получил ее, еще раз спасибо.
print("Shipping Calculator n")
enter_more="y"
while enter_more.lower()=="y":
itemcost=float(input("Cost of items ordered:"))
if itemcost < 0:
print("You must enter a positive number. Please try again.")
continue
if itemcost >75:
Shipping_cost=0
elif itemcost >50:
Shipping_cost=9.95
elif itemcost >30:
Shipping_cost=7.95
else:
Shipping_cost =5.95
print("Shipping cost:",Shipping_cost)
total_cost =round(Shipping_cost itemcost,2)
print ("Total cost:",round(Shipping_cost itemcost,2))
print()
enter_more = input("Continuie? y/n:")
if enter_more.lower()!= "y":
break
print("Bye!")
Комментарии:
1. добавьте один пробел перед функцией печати в исходном файле
2. Ваш отступ неверен в elif amp; else … эти условия должны быть смещены так же, как исходное условие if.
3. Я не программист pyhon, но if, elsif и else должны иметь одинаковый отступ, это не так ни здесь, ни на картинке
Ответ №1:
Ваш код должен выглядеть следующим образом:
print("Shipping Calculator n")
itemcost=float(input("Cost of items ordered:"))
if itemcost <30.00:
Shipping_cost=5.95
elif itemcost >30.00 and itemcost <= 49.99:
Shipping_cost=7.95
elif itemcost >50.00 and itemcost <=74.99:
Shipping_cost=9.95
else:
print("Shipping cost is FREE")
print("Shipping cost:" str (itemcost) Shipping_cost)
Причина, по которой вы получали ошибку, заключается в том, что elif
оператор you был внутри if
.
Также обратите внимание на другие моменты:
- Также лучше заменить
print()
наn
format(Shipping_cost)
может быть заменен наShipping_cost
- Если вы хотите использовать,
format()
тогда вам следует изменитьprint("Shipping cost:" str (itemcost) Shipping_cost)
сprint("Shipping cost:{}{}".format(str(itemcost),Shipping_cost))
Комментарии:
1. уберите один пробел перед
else
🙂
Ответ №2:
Ваш оператор if должен иметь правильный отступ.
print("Shipping Calculator")
print()
itemcost=float(input("Cost of items ordered:"))
if itemcost <30.00:
Shipping_cost=5.95
elif itemcost >30.00 and <=49.99:
Shipping_cost=7.95
elif itemcost >50.00 and <=74.99:
Shipping_cost=9.95
else:
print("Shipping cost is FREE")
print("Shipping cost:" str (itemcost) format(Shipping_cost))
Это потому, что в дереве кода python (если хотите, но я имею в виду циклы и операторы if) нет фигурных скобок, как в большинстве языков программирования. Вместо этого он смотрит, как в коде есть отступ. При том, как вы это написали, компилятор интерпретирует elif
инструкции и else
оператор как отдельный оператор if, и это приводит к путанице, потому что нет if
инструкции. Вот почему вам нужно сделать правильный отступ.
Я предполагаю, что это способ Python заставить программистов правильно делать отступы.