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]上的,这是开始调试它的唯一方法。