2015-10-20 131 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

相关问题