На самом деле, я новичок в питоне. У меня есть сомнения в обмен на петли. -> если я вернусь внутрь цикла, вывод равен 1 для (для строки "abcd"). -> если я вернусь с тем же отступом, который используется для кода в коде, вывод будет 4. Можете ли вы объяснить, что происходит?

Я кратко добавил свою проблему, используя комментарий в коде.

def print_each_letter(word):
   counter = 0   
   for letter in word:
     counter += 1
     return counter      #its returning length 1  why ?
   return counter        # its returning length 4  why?

print_each_letter("abcd")
-4
Manvir Choudhary 10 Июл 2019 в 08:55

3 ответа

Лучший ответ

Поскольку return внутри цикла выполняется в первый раз, когда цикл выполняется, это происходит так:

counter = 0
for letter in word:
    #'a'
    counter += 1
    return counter #return counter (1) and terminate function.

Но если вы позволите циклу работать первым:

counter = 0
for letter in word:
    #'a'
    counter += 1 #1
    #'b'
    counter += 1 #2
    #'c'
    counter += 1 #3
    #'d'
    counter += 1 #4
return counter #return counter (4) and terminate function.
0
Ruan 10 Июл 2019 в 10:40

return выходит из функции и возвращает 4, потому что он вне цикла, а цикл выполнил все свои операции и суммировал до 4 (так как длина abcd 4) и возвращает значение.

1
U10-Forward 10 Июл 2019 в 05:57