我用Python编写了基数排序程序。但是当我执行代码时,我会得到以下错误消息max() arg is an empty sequence
。
这是我的代码:
class RadixSort:
num=0
array=[]
def getData(self):
print 'Enter the number of elements you want to enter: '
num=int(input())
print 'Now enter the elements: '
for i in range(0,self.num):
print 'Element ',i+1,': '
value=int(input())
self.array.append(value)
def radixSort(self):
bin=[[],[],[],[],[],[],[],[],[],[]]
r=1
m=max(self.array)
while m>r:
for ele in self.array:
bin[(ele/r)%10].append(ele)
r=r*10
self.array=[]
for i in range(10):
self.array.extend(bin[i])
bin[i]=[]
def displayArray(self):
print ''
for ele in self.array:
print ele
RObject=RadixSort()
RObject.getData()
RObject.radixSort()
RObject.displayArray()
在数组中输入值之前会出现此错误。我该怎么解决?
我认为你应该替换:
到
检查数组是否不为空并不多余:
你应该显示完整的回溯。当我运行你的代码时,我得到:
所以m=max(self.array)失败,因为不能对不存在的对象执行max函数。您需要有一个init方法来创建self.array
为什么使用输入而不是原始输入?您正在使用Python2.7
相关问题 更多 >
编程相关推荐