Как проверить в цикле 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'))```
