Не считает знаки препинания
Не понимаю, почему программа не считает запятые, в приложении обучалке почти так же написал, то что из приложения скопировал подошло, а то что сам написал также нет, где здесь ошибки? И может можете посоветовать приложения для обучения питону?
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».