Как проверить в цикле while возврат символа, не входящего в строку?

Нужна функция, которая проверяет, содержит ли строка указанную букву. Результаты проверки:

введите сюда описание изображения

я стал здесь: введите сюда описание изображения если открыть 3 проверку - не работает 1, и не уверен про 2 проверку


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

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

Немного изменив код, можно добиться прохождения тестов

def f(text, ch):
    index = 0
    while index < len(text):
        if ch == text[index]:
            return True
        index += 1
    return False

print(f('Hello', 'H'))          # => True
print(f('Hello', 'h'))          # => False
print(f('Awesomeness', 'm'))    # => True
print(f('Awesomeness', 'd'))    # => False

Но как сказал @andreymal, проще

def f(text, ch):
    return ch in text
→ Ссылка
Автор решения: Zhihar
text = 'Hello, world'
letter = 'e'

вариант 1:

letter in text

вариант 2:

text.find(letter) != -1

вариант 3:

any(letter == l for l in text)


not all(letter != l for l in text)

вариант 4:

res = False

for l in text:
    if l == letter:
        res = True
        break

вариант 5:

len(set(letter) & set(text)) != 0

вариант 6:

{l: True for l in text}.get(letter, False)
→ Ссылка
Автор решения: cubinez85

3 проверку надо вынести за пределы цикла:

    index = 0
    if char != text[index]:
        return char in text
    while index <= len(text):
        if char == text[index]:
            return True
        if char == text[index].lower():
            return False
        # if char == :
        #     return False
        index += 1
    return
text = 'Hello'
print(f(text, char='H'))```
→ Ссылка