Не считает знаки препинания
Не понимаю, почему программа не считает запятые, в приложении обучалке почти так же написал, то что из приложения скопировал подошло, а то что сам написал также нет, где здесь ошибки? И может можете посоветовать приложения для обучения питону?
print('Построчно вводите стих, отделяя строки нажатием Enter, чтобы посчитать количество запятых в строке. Последней строкой введите слово Конец')
while True:
s = str(input())
if s == 'Конец' or 'конец':
break
k = 0
for x in s:
if x in ',?!.':
k = k + 1
print(k)
Ответы (1 шт):
Цикл while сделает break сразу же на условии s == 'Конец' or 'конец'
or - это логический оператор ИЛИ. Представь это условие вот так: (s == 'Конец') or ('конец'). Если строку 'конец' преобразовать в boolean тип данных, то будет true. Значит, условие (s == 'Конец') or True всегда будет выполняться.
Исправь строку на это: s in ('Конец', 'конец').
print('Построчно вводите стих, отделяя строки нажатием Enter, чтобы посчитать количество запятых в строке. Последней строкой введите слово Конец')
while True:
s = str(input())
if s in ('Конец', 'конец'):
break
k = 0
for x in s:
if x in ',?!.':
k = k + 1
print(k)
Другой вариант:
s.lower() == 'конец'
Так можно учитывать, например, 'кОнец'.
Классика - Марк Лутц «изучаем python».