Top.Mail.Ru
Ответы

Ошибка typeerror: 'int' object is not iterable. Язык Python

Я пытаюсь присвоить каждому символу в строке его код. Но вот здесь for j in len(s): возникает ошибка. Мой код:
s = 'this is our simbol str'
print(s)
lst2=[]
for j in len(s):
for i in s:
lst2[j] = ord(i)
break
print (lst2)
Подскажите, что я делаю не так?

Только авторизированные пользователи могут оставлять свои ответы
Дата
Популярность
Аватар пользователя
Новичок
6лет

Оператором in можно перебрать элементы в какой-нибудь последовательности, которую можно перебирать - итерировать.
Например - список, кортеж.

А Вы пытаетесь применить его к единственному числу - len(s).
Вот оно и пишет, что целое число неперебираемо.

Надо так
s = 'this is our simbol str'
print(s)
lst2=[]
for a in s:
~~~~lst2.append(ord(a))
print (lst2)

Или лучше так (с помощью генератора списков - list comprehension)

s = 'this is our simbol str'
print(s)
lst2=[ord(a) for a in s]
print (lst2)

А еще, если надо и сам элемент и его номер в последовательности (здесь это не нужно), то можно применить функцию enumerate(), а не два for

for i,a in enumerate(s):

Аватар пользователя
Оракул
6лет

Тут надо типа так
for j in range(len(s)):
lst2.append(ord(s[j]))