Почему я не отображаю ничего, когда пишу, а затем печатаю с помощью оператора if в python, который делает простые вычисления? - PullRequest
0 голосов
/ 18 июня 2019

Попытка написать функцию, которая рассчитывает стоимость доставки товара на основании его веса.

def ground_cost(weight):
  if weight<=2:
    price= 1.5*weight + 20
  elif  (weight>2) and (weight<=6):
    price=3*weight + 20
  elif (weight>6) and (weight<=10):
    price=4*weight + 20
  else:
    price=4.7*weight + 20
    return price

print(ground_cost(8.4))

Я использовал для этого простые операторы if и elif, но каждый раз отображал NONE.

Я ожидал, что результат будет 53,6, но он не отображается.

Ответы [ 2 ]

1 голос
/ 18 июня 2019

Ваш оператор возврата встроен в заключительное предложение else, он должен иметь тот же отступ, что и ваш начальный if. В вашем примере кода это никогда не достигается, и, таким образом, функция возвращает значение по умолчанию None, так как оператор возврата не встречается.

0 голосов
/ 18 июня 2019

Правильно сделать отступ в заявлении:

def ground_cost(weight):
  if weight<=2:
    price= 1.5*weight + 20
  elif  (weight>2) and (weight<=6):
    price=3*weight + 20
  elif (weight>6) and (weight<=10):
    price=4*weight + 20
  else:
    price=4.7*weight + 20
  return price

print(ground_cost(8.4))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...