我是靠谱客的博主 哭泣乐曲,最近开发中收集的这篇文章主要介绍python整形不可迭代_Python-TypeError:“ int”对象不可迭代,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Here's my code:

import math

print "Hey, lets solve Task 4 :)"

number1 = input ("How many digits do you want to look at? ")

number2 = input ("What would you like the digits to add up to? ")

if number1 == 1:

cow = range(0,10)

elif number1 == 2:

cow = range(10,100)

elif number1 == 3:

cow = range(100,1000)

elif number1 == 4:

cow = range(1000,10000)

elif number1 == 5:

cow = range(10000,100000)

elif number1 == 6:

cow = range(100000,1000000)

elif number1 == 7:

cow = range(1000000,10000000)

elif number1 == 8:

cow = range(10000000,100000000)

elif number1 == 9:

cow = range(100000000,1000000000)

elif number1 == 10:

cow = range(1000000000,10000000000)

number3 = cow[-1] + 1

n = 0

while n < number3:

number4 = list(cow[n])

n += 1

I am looking to make a loop so that for each element in the list, it will get broken down into each of it's characters. For example, say the number 137 was in the list then it would be turned into [1,3,7]. Then I want to add these numbers together (I haven't started that bit yet but I have some idea of how to do it).

However, I keep getting the error message

TypeError: 'int' object is not iterable

when I try and run this.

What am I doing wrong?

解决方案

Your problem is with this line:

number4 = list(cow[n])

It tries to take cow[n], which returns an integer, and make it a list. This doesn't work, as demonstrated below:

>>> a = 1

>>> list(a)

Traceback (most recent call last):

File "", line 1, in

TypeError: 'int' object is not iterable

>>>

Perhaps you meant to put cow[n] inside a list:

number4 = [cow[n]]

See a demonstration below:

>>> a = 1

>>> [a]

[1]

>>>

Also, I wanted to address two things:

Your while-statement is missing a : at the end.

It is considered very dangerous to use input like that, since it evaluates its input as real Python code. It would be better here to use raw_input and then convert the input to an integer with int.

To split up the digits and then add them like you want, I would first make the number a string. Then, since strings are iterable, you can use sum:

>>> a = 137

>>> a = str(a)

>>> # This way is more common and preferred

>>> sum(int(x) for x in a)

11

>>> # But this also works

>>> sum(map(int, a))

11

>>>

最后

以上就是哭泣乐曲为你收集整理的python整形不可迭代_Python-TypeError:“ int”对象不可迭代的全部内容,希望文章能够帮你解决python整形不可迭代_Python-TypeError:“ int”对象不可迭代所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部