Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

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

Владинум Знаток (351), закрыт 3 года назад
Я пытаюсь присвоить каждому символу в строке его код. Но вот здесь 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)
Подскажите, что я делаю не так?
Лучший ответ
Aleks Nots Просветленный (25335) 5 лет назад
Оператором 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):
Вячеслав БарановЗнаток (387) 1 год назад
СПАСИБО ЗА ОБЬЯСНЕНИЕ!!!!
Остальные ответы
Юрий Моисеев Оракул (83944) 5 лет назад
Тут надо типа так
for j in range(len(s)):
lst2.append(ord(s[j]))
Похожие вопросы