При запуске программы на Python всплывает ошибка "return 'outside function" - PullRequest
0 голосов
/ 19 марта 2019

При запуске программы Python выскакивает ошибка "return 'outside function".

Я пытаюсь составить список чисел с плавающей запятой и возвращает список с каждым элементом с 10-процентной скидкой.

def discount_ten():
nondis=float[1.10,2.40,5.20,6.30,6.70]
for i in nondis:
  |return(nondis/10) #<- "|" is the red highlighting.#
print(nondis)

Может кто-нибудь помочь?

Ответы [ 3 ]

1 голос
/ 19 марта 2019

в Python, отступ является важной частью кода. каждый блок добавляет один уровень отступа. чтобы определить функцию, вы должны сделать отступ для каждой строки функции на одну и ту же величину.

def discount_ten():
    distcount_list = []
    nondis = [1.10,2.40,5.20,6.30,6.70]
    for i in nondis:
        distcount_list.append(round(i/10,2))
    return distcount_list
print(discount_ten())
1 голос
/ 19 марта 2019

Bad Indentation, вам нужно правильно сделать отступ для определения вашей функции, т.е.:

def discount_ten():
    nondis=float[1.10,2.40,5.20,6.30,6.70]
    for i in nondis:
      return(nondis/10) 
    print(nondis)

Примечание: Python следует определенному стилю отступа, чтобы определить code, , поскольку функции Python не имеют явного начала или конца, например фигурные скобки для обозначения начала и конца функции , они должны полагаться на этот отступ.

РЕДАКТИРОВАТЬ (исправлено для желаемого выхода):

Используя список для хранения результатов, вам не нужно return в цикле, так как это приведет к выходу из цикла и выведет только 0.11000000000000001 для самой первой итерации. Кроме того, используйте round() для округления до ближайшего десятичного знака:

def discount_ten():
    nondis = [1.10,2.40,5.20,6.30,6.70]
    res = []                      # empty list to store the results
    for i in nondis:
      res.append(round(i/10, 2))  # appending each (rounded off to 2) result to the list
    return res                    # returning the list

print(discount_ten())

OUTPUT

[0.11, 0.24, 0.52, 0.63, 0.67]
1 голос
/ 19 марта 2019

Я думаю, что ваша функция не имеет правильного отступа, посмотрите на следующий код:

Эта функция выводит желаемый результат:

def discount_ten():
   nondis=[1.10,2.40,5.20,6.30,6.70]
   for i in nondis:
     print(i/10)

Эта функция возвращает список желаемого выхода:

def discount_ten():
    nondis=float[1.10,2.40,5.20,6.30,6.70]
    disc_ten=[]
    for i in nondis:
       disc.append(i/10)
    return disc

Примечание: Кодовый блок (тело функции, цикл и т. Д.) Начинается с отступа и заканчивается первой неиспользуемой строкой. Количество отступов зависит от вас, но оно должно быть одинаковым во всем блоке.

-

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