Python对象不可订阅

时间:2014-09-11 00:39:43

标签: 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]
        sortedNumbers = numbers.sort()
        trial1 = number1 * number2 * number3
        trial2 = sortedNumbers[1] * sortedNumbers[1]
        if trial1 == trial2:
            return True
        else:
            return False

boxCheck(4,16,8)

2 个答案:

答案 0 :(得分:5)

sort() 列表进行排序以及它不会返回任何内容(事实上,它会返回None ),因此变量sortedNumbers将为None

你能做什么?你可以使用sorted(),它将返回排序列表:

sortedNumbers = sorted(numbers)

注意:不要忘记打印结果:

print(boxCheck(4,16,8))

答案 1 :(得分:0)

以下是手册中有关排序方法的内容:

> 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()

导致没有任何内容保存到sortedNumbers。