Ошибка вида 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]))