finding a character in a string

Используйте цикл for для прохождения строки, и подсчитайте число символов l в строке Hello world.

Это моя программа на Питоне и она не работает. Прошу вас показать мне правильный подход и почему мой код не работает:

str = 'Hello world'
k = 0
for i in str: 
    if str[b] == 'l':
      k += 1

print(k)

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

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

Задавать вопросы принято по-русски, но вот ответ / It is customary to ask questions in Russian, but here is the answer:

str = 'Hello world' 
k = 0 
for i in str: 
    if i == 'l': 
        k += 1
print(k)
→ Ссылка
Автор решения: MarianD
    if str[b] == 'l':

В вашей программе нет переменной b, потому ошибка.

Используйте прямо переменную i из заголовка цикла

for i in str: 
    if i == 'l':

так как ее значением является очередной символ из переменной str.


Примечание 1:

Есть тоже такая возможность поправки:

for b in range(len(str)): 
    if str[b] == 'l':

но это некрасивый, не Питонический подход.

Примечание 2:

str не очень удобное имя для переменной, потому что оно есть имением встроенной функции. Было бы хорошо применить какое-то другое, по меньшей мере str_.

→ Ссылка