Я хочу напечатать «Нет» в конце цикла for. Как мне это сделать?

#python #for-loop

#python #for-цикл

Вопрос:

Мне удалось вернуть «Да», если есть то же слово, но …….

 a = input()
list_a = list(a)
b = input()
list_b = list(b)

for i in range(len(a)):
    added = list_a[-1]
    list_a.pop()
    list_a.insert(0, added)

    if list_a == list_b:
        print('Yes')
        break
    else:
        continue
  

Как я должен вернуть «Нет» в конце цикла for ?

Ответ №1:

Что вам нужно, так это вспомогательный флаг, чтобы сообщить вам, в каком из двух случаев вы находитесь. По умолчанию это False означает, что по умолчанию два списка не совпадают.

 a = input()
list_a = list(a)
b = input()
list_b = list(b)
list_are_the_same = False
for i in range(len(a)):
    added = list_a[-1]
    list_a.pop()
    list_a.insert(0, added)

    if list_a == list_b:
        list_are_the_same = True
        break
result = 'Yes' if list_are_the_same else 'No'
print(result)
  

Я сделал еще одно редактирование — вам не нужно явное continue для else , это происходит в любом случае.

РЕДАКТИРОВАТЬ (спасибо python_learner за то, что научил меня новой конструкции на python): Вы также можете использовать оператор else для циклов for, и код станет:

 a = input()
list_a = list(a)
b = input()
list_b = list(b)
for i in range(len(a)):
    added = list_a[-1]
    list_a.pop()
    list_a.insert(0, added)

    if list_a == list_b:
        print('Yes')
        break
else:
    print('No')