def has_char(string, char):
i = 0
while i < len(string):
if char == string[i].lower():
return True
if char == string[i].upper():
return True
i += 1
return False
print(has_char('Hello', 'h')) # True
print(has_char('Hello', 'H')) # True
print(has_char('Hello', 'ё')) # False, ;)
Сравнение char с string[i] без учета регистра?
def has_char(string, char):
for i in range(len(string)):
if char == string[i]:
# if char.lower() == string[i].lower():
return True
return False
print(has_char("Привет", "п")) # True? False!
И да, в Вашем случае, for будет лучше while, т.к. цикл не предполагает неопределенное количество итераций, читается лучше, да и сами проверки можно упростить:
def has_char(string, char):
for _char in string:
if _char.lower() == char.lower():
return True
return False
print(has_char('Hello', 'h')) # True
print(has_char('Hello', 'H')) # True
print(has_char('Hello', 'ё')) # False, ;)