2015-10-20 125 views
-4

這是我的Python代碼Bubble sort.It顯示錯誤,如標題中所述。'str'對象不能被解釋爲整數

def arrayinput(self): 
     print ("Enter the elements") 
     for i in range (0,n): //ERROR IS HERE 
      b=input() 
      arr.append(b) 

def arraysorting(self): 
    for i in range (1,n): 
     for j in range (0,n-i): 
      if (arr[j]> arr[j+1]): 
       temp=arr[j] 
       arr[j]=arr[j+1] 
       arr[j+1]=temp 

def arraydisplay(self): 
    print ("Sorted list is") 
    print (arr) 
+1

是什麼'N'?我沒有看到它在任何地方定義。我沒有看到任何在任何地方定義的變量。 –

+0

我已經定義了n,但沒有顯示在這裏... –

+1

顯然,'n'是str。你也需要這些代碼,以便我們能夠告訴你,你做錯了什麼。請提供[MCVE]。 –

回答

0

問題是,b=input()這意味着它是從鍵盤獲得的字符串。你想重新施放它。粗略地說,你可以b=int(input()),但這不是一個處理潛在錯誤的可靠方法。

要做到這一點的一些詳細信息,你可以嘗試這樣的:

try: 
    b=int(input()) 
except: 
    print "You did not enter a valid integer" 

編輯:

在閱讀的意見,如果n是一個字符串,那麼你需要重新定義那是一個整數。我假設你已經做了這樣的:

print "How many times do you want to run?" 
n=input() 

嘗試,而不是:

n=int(input()) 
+0

這工作...但是當我在終端上運行原始代碼,它運行良好! eclipse上的問題是什麼? –

+0

不知道,對不起,很少使用exclipse。 – Henry

相關問題