2017-02-18 4 views
0

У меня есть список, несколько похожий на приведенный ниже.SyntaxError: функция 'return' external

lines = ['This is line 1',
'This is another line',
'This is the third line. Line 03.']

При запуске return заявления, чтобы обработать для len линии,

for line in lines: 
    return(len(line)) 

генерирует следующее сообщение об ошибке:

File "", line 2
return(len(line))
^
SyntaxError: 'return' outside function

может однако print длина линий ,

for line in lines: 
    print(len(line)) 

Результат:

14
20
32

Как именно внешняя функция return оператора в этом случае?

Редактировать: Вот как он выглядит в моем ноутбуке. http://imgur.com/w4EzlrH

+1

, где именно вы разместили, что 'for' цикл, который содержит' return' Это либо верхнего уровня, или вы не показывает нам. «SyntaxError» довольно описательный, он должен * быть в функции. –

ответ

3

Ваше утверждение может быть непоследовательным. Используйте четыре пробела на уровень отступа, как рекомендовано PEP-8. Во-вторых, он должен быть внутри функции. В-третьих, ваш оператор возврата не вернет длину всех элементов по вашему желанию.

2

Функция возврата используется для передачи значения обратно туда, где вызывается определенная функция. То, как я это вижу, вы по существу пытаетесь перезаписать возвращаемое значение. Вы должны использовать его в функции, которая что-то делает, и возвращает значение обратно. Ваш оператор цикла и возврата не отображается в функции.

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

Пример:

lines = ['This is line 1', 
'This is another line', 
'This is the third line. Line 03.'] 

def check_len(i): 
    return len(i) 

for line in lines: 
    print(check_len(line)) 
Смежные вопросы