TypeError: cannot unpack non-iterable int object
word = ord(input('any symbol, but only one:'))
bb = chr(word)
for num, value in word, bb:
print(str(num) + '==>' + value)
почемуто выводит следущее:
any symbol, but only one:g
Traceback (most recent call last):
File "D:\allscripts.py\workiii\jarvis.py", line 3, in <module>
for num, value in word, bb:
TypeError: cannot unpack non-iterable int object
Ответы (1 шт):
Выражение for num, value in word, bb: означает, что нужно перебрать коллекцию и каждый ее элемент распаковать по переменным num и value.
В цикле word, bb станет кортежом на два элемента word и bb, т.е. сначала цикл вернет word, потом bb.
А значения num, value заставят его каждый элемент пытаться разложить на два элемента. А т.к. у вас word является числом, то для него такого нельзя сделать (cannot unpack non-iterable int object).
Кст, распаковка выглядит так, для рабочего варианта сделал обе переменных строками по два элемента:
word, bb = '12', '34'
for num, value in word, bb:
print(num, '=>', value)
# 1 => 2
# 3 => 4
Как мы тут видим, сначала цикл вернул word, после значение "12" распаковал по двум переменным, а следующей итерацией вернул bb и сделал аналогичную распаковку
Мб, вам не цикл нужен был, а что-то вроде такого?
num, value = word, bb
print(str(num) + '==>' + value)