Python ';str';对象不能解释为整数

Python ';str';对象不能解释为整数,python,Python,这是我的冒泡排序python代码。它显示了标题中描述的错误 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

这是我的冒泡排序python代码。它显示了标题中描述的错误

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)

问题在于
b=input()
,这意味着它是从键盘获取的字符串。你想重播它。粗略地说,您可以
b=int(input())
,但这不是处理潜在错误的可靠方法

要做得更详细一些,您可以尝试以下方法:

try:
   b=int(input())
except:
   print "You did not enter a valid integer"
print "How many times do you want to run?"
n=input()
编辑:

在阅读注释时,如果
n
是一个字符串,则需要将其重新定义为整数。我想你做过类似的事情:

try:
   b=int(input())
except:
   print "You did not enter a valid integer"
print "How many times do you want to run?"
n=input()
请尝试:

n=int(input())

什么是
n
?我看不到它在任何地方被定义。我在任何地方都没有看到任何定义的变量。我定义了n,但在这里没有显示……显然,
n
是str。您也需要这些代码,我们才能告诉您,您做错了什么。请提供一个。如果您不理解字符串和数字之间的区别,则需要回到基础。这是可行的…但当我在终端上运行原始代码时,它运行得很好!eclipse有什么问题?不知道,抱歉,很少使用exclipse。