Как работают методы .isupper и .islower?
Методы .isupper и .islower отказываются нормально работать. Данный код:
def code_into_bin(code,bin_code):
for i in range(len(code)):
bin_code.append([])
print(i)
if code[i].isupper:
bin_code[i]=1
print(bin_code)
else:
bin_code[i]=0
print(bin_code)
return(bin_code)
bin_code=[]
code=['a','A','B','b','c','c','D','d']
print(len(code))
При работе выдает: [1, 1, 1, 1, 1, 1, 1, 1]
Хотя по логике должно быть быть [0,1,1,0,0,0,1,0]. Помогите пожалуйста, что я делаю не так? p.s. Я новичок в программировании
Ответы (1 шт):
Автор решения: Zhihar
→ Ссылка
ваш код должен быть таким:
def code_into_bin(code):
return list(map(lambda letter: 1 if letter.isupper() else 0, code))
а ваша ошибка в том, что isupper надо вызывать как метод (функцию), т.е. со скобками - isupper()
P.S.
кстати код можно сделать еще чуть покороче
def code_into_bin(code):
return list(map(lambda letter: int(letter.isupper()), code))