Почему, если нет перерывов, этот код продолжает возвращать мой ввод? - PullRequest
0 голосов
/ 01 мая 2020

Может ли кто-нибудь помочь мне понять, почему, если я не поместил туда break, код даст мне многократный вывод. Например:

In: myfun c ('abogoboga')

Out: 'aBoGoBoGaaBoGoBoGaaBoGoBoGaaBoGoBoGaaBoGoGoBoGaBoGo * * * * * * * * * * * break как указано выше:

In: myfun c ('abogoboga')

Out: 'aBoGoBoGa'

1 Ответ

0 голосов
/ 01 мая 2020

Ваши вложенные for циклы совершают sh тоже самое. for char in strg назначает char каждому символу в strg, но вы никогда не используете его. Вместо этого вы снова итерируете strg, и причина, по которой он работает с разрывом, заключается в том, что если вы прервитесь после выполнения одного l oop из for char in strg, вы превратите for l oop в простое выражение , Более простой способ сделать это - удалить for char in strg:

def myfunc(*args):
    output = []
    for strg in args:
         for i in range(len(strg)):
             if i % 2 == 0:
                 output.append(strg[i].lower())
             else:
                 output.append(strg[i].upper())
    return ''.join(output)
...