Ошибка вида NameError: name 'k' is not defined

Какие могут быть причины ошибки,я не понимаю,за ответ спасибо Выдается ошибка:

Traceback (most recent call last):
line 10, in <module>
    k=k+1
NameError: name 'k' is not defined

код:

 print('Введите стих построчно,отделяя строки нажатием Enter,'   
      'последней строкой введите Конец')
while(1 == 1):
   s = str(input())
   if(s == 'Конец') or ('КОНЕЦ') or ('конец'):
    break
    k = 0
for x in s:
    if(x in 'ауеоыяиюУЕЫАОЭЯИЮ'):
        k=k+1
print(k)

Ответы (3 шт):

Автор решения: Kers

Вы создаете и переопределяете ременную в цикле.

print('Введите стих построчно,отделяя строки нажатием Enter,'   
      'последней строкой введите Конец')
k = 0  # Добавленная строка
while True:  # Смысл в 1 == 1? итогом будет True
    s = input() # По умолчанию str приводить не обязательно
    if s.lower() == 'конец': # Сравниваем с s
        break
for x in s:
    if x in 'ауеоыяиюУЕЫАОЭЯИЮ':
        k=k+1
print(k)

P.S. s у вас каждый раз перезаписывается так что всегда будет только последний ввод

→ Ссылка
Автор решения: Danis
break
k = 0

эти строки надо поменять местами

if(s == 'Конец') or ('КОНЕЦ') or ('конец'):

так писать не правильно, советую прочитать: Python и проблемы строчного “or”

→ Ссылка
Автор решения: Namerek

Немного пофантазировал на ТЕМУ:

print('Введите стих построчно, отделяя строки нажатием Enter.\n'
      'последней строкой введите "Конец"')

vowels = 'ауеоыяиюУЕЫАОЭЯИЮ'
lines = ''
while (line := input(': ')).lower() != 'конец':
    lines += line
print(sum([letter in vowels for letter in lines]))
→ Ссылка