2015-12-21 2 views
0

Я пытаюсь выполнить итерацию по некоторому числу с помощью Python 3. Для этого я подумал о том, чтобы отличить число до строки. Упрощенная версия здесь:Литье типа Python

def printValue(num): 
    value = str(num) 
    for i in len(value): 
     print(value[i]) 
    return; 

Однако, хотя я получаю информацию, что ИНТ не итерацию:

Traceback (most recent call last):                                                 
    File "main.py", line 9, in <module>                                                
    print(printValue(12112121))                                              
    File "main.py", line 5, in printValue 
    for i in len(value):                                                   
TypeError: 'int' object is not iterable 

Что мне делать неправильно?

+1

У Python нет литье типов (это процесс передачи компилятору обработки значения одним типом как имеющего другой тип). 'str (num)' создает совершенно новое значение. – chepner

ответ

6

len возвращает целое число, и вы не можете перебирать целое число.

Если вы хотите итерации по целым числам от 0 до len(value), используйте range.

for i in range(len(value)): 

Хотя в этом случае, если вы на самом деле не нужны показатели, так что вы можете также просто перебирать непосредственно над символами струны.

for c in value: 
+0

По какой-то причине я хочу получить каждое число целых по отдельности. – Moby04

+0

Итак, итерация в том порядке, который я описал, позволяет это сделать. У вас все еще есть проблемы? – Kevin

+0

По-прежнему он рассматривает значение как int и утверждает, что я не могу его перебирать. – Moby04

Смежные вопросы