在python中,整数如2013被视为数组,就像字符串是“狗”一样?

时间:2014-02-16 14:50:53

标签: python arrays string int

我需要知道整数是否可以被视为数组,就像字符串可以解决此问题一样:问题描述 您可能会惊讶地发现2013年是自1987年以来的第一年,具有不同的数字。这些年 2014年,2015年,2016年,2017年,2018年,2019年各有不同的数字。 2012没有明显的数字, 因为数字2重复了。 鉴于一年,明年的数字是多少? 输入规格 输入由一个整数Y(0 Y 10000)组成,代表起始年份。

原因是因为我一直收到一条错误消息,说“int”对象不可迭代。

这是我的代码。任何帮助将不胜感激。谢谢。

def distinct(year):

    elements = []
    for j in range (year, 10000):
        elements.append(max(year))
        year.pop(year.index(max(year)))

        elements.append(min(year))
        year.pop(year.index(min(year)))

        if ((j not in elements) and (j not in year)):
            return j
            break 

def main():
    print (distinct(int(input('Please enter a year'))))

main()

3 个答案:

答案 0 :(得分:4)

没有。数字是数字。但是,您可以通过将它们作为参数传递给str类来获取字符串表示:

year = 2012
str_year = str(year)
for digit in str_year:
    print digit

答案 1 :(得分:1)

如果要迭代年份编号中的其他数字,则不应将输入转换为int。字符串被视为字符列表,因此您可以迭代每个数字(如果您愿意,可以将它们转换为int):

>>> for number in "2012":
...     print number
...
2
0
1
2

答案 2 :(得分:1)

>>> n = 2014
>>> list(n)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable
>>> list(str(n))
['2', '0', '1', '4']