2014-02-16 46 views
0

我需要知道,如果可以的整數與數組對待,就像字符串可以爲這個問題:問題描述 你可能會驚訝地知道,2013是第一個年自1987年以來具有鮮明的數字。 2014年,2015年,2016年,2017年,2018年,2019年的 各有不同的數字。 2012沒有不同的數字, ,因爲數字2重複。 給定一年,下一年有什麼不同的數字? 輸入規格 輸入由一個整數Y(0 Y 10000)組成,代表起始年份。在python中,像2013年一樣將整數視爲數組,就像字符串是「狗」一樣?

的原因是因爲我不斷收到一個錯誤,指出消息「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() 
+0

現在的問題是猜測其中'「INT」對象不可迭代.'錯誤被拋出? – thefourtheye

+0

順便說一句btw字符串不是數組,如果你想像字符串一樣對待它使得它可迭代,你需要將int轉換爲字符串,並且你可以使用字符串中的所有方法,比如'for i in string' –

回答

4

no。數字是數字。但是,您可以通過簡單地將它們作爲參數傳遞給str類得到一個字符串表示:

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

或者它們可以只是首先不要在其字符串上調用「int」。 – sepp2k

+0

我明白你的回覆,我開始做一個循環遍歷字符串「2013」​​的每個數字,例如,但我仍然得到int對象是不可迭代的。具體來說這裏是我得到的錯誤: – user1814771

+0

請輸入year2013 回溯(最近通話最後一個): 文件「C:\用戶\ Yazad \ Dropbox的\ 12級\計算機科學\ 1898年至2013.py」文件「C:\ Users \ Yazad \ Dropbox \ Grade 12 \ Computer Science \從1898到2013.py」,第33行,在主要文件 print(distinct(int(input('請輸入年份')))) 文件 「C:\用戶\ Yazad \ Dropbox的\ 12級\計算機科學\ 1898年至2013.py」,6號線,在不同的 elements.append(最大(年)) TypeError:'int'對象不可迭代 – user1814771

1

如果你想重複其他數字在一年數,你不應該投的輸入爲int。的字符串被認爲是字符的列表,以便您可以通過每個數字遍歷(扔int如果你想後):

>>> for number in "2012": 
...  print number 
... 
2 
0 
1 
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'] 
相關問題