Не считает знаки препинания

Не понимаю, почему программа не считает запятые, в приложении обучалке почти так же написал, то что из приложения скопировал подошло, а то что сам написал также нет, где здесь ошибки? И может можете посоветовать приложения для обучения питону?

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 шт):

Автор решения: Dmitri Galkin

Цикл 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».

→ Ссылка