Python对象不可下标
你知道为什么这个代码不起作用吗? 我总是出错Python对象不可下标,python,Python,你知道为什么这个代码不起作用吗? 我总是出错 def boxCheck(number1,number2,number3): if number1 * number2 * number3 == 0 or number1 < 0 or number2 < 0 or number3 < 0: return False else: numbers = [number1, number2, number3] sortedNu
def boxCheck(number1,number2,number3):
if number1 * number2 * number3 == 0 or number1 < 0 or number2 < 0 or number3 < 0:
return False
else:
numbers = [number1, number2, number3]
sortedNumbers = numbers.sort()
trial1 = number1 * number2 * number3
trial2 = sortedNumbers[1] * sortedNumbers[1]
if trial1 == trial2:
return True
else:
return False
boxCheck(4,16,8)
所发生的事情是,对列表进行适当排序,这样它就不会返回任何内容。事实上,它不会返回任何内容,因此变量sortedNumber将为None
你能做什么?您可以使用,它将返回已排序的列表:
sortedNumbers = sorted(numbers)
注意:不要忘记打印结果:
print(boxCheck(4,16,8))
以下是手册中关于排序方法的说明:
> Help on method_descriptor:
>
> sort(...)
> L.sort(cmp=None, key=None, reverse=False) -- stable sort *IN PLACE*;
> cmp(x, y) -> -1, 0, 1
你的陈述
sortedNumbers = numbers.sort()
结果不会将任何内容保存到SortedNumber。不要只说我一直收到错误,显示错误。复制它并粘贴到这里,带有精确的文本、回溯等等。在这种情况下,问题很明显,但通常不是这样,回溯会告诉我们你有一个TypeError:“NoneType”对象是不可下标的,它是专门在SortedNumber[1]上的,这是开始调试它的唯一方法。