错误:/:' NoneType'不支持的操作数类型和' int'

时间:2016-03-29 03:36:10

标签: python arrays division operands

我已经看到过像这样的几个问题,但没有一个问题以正确的方式解决了我的问题。意味着它的回答方式要么不起作用,要么对我没有意义。我将为您提供适合的代码以及它给出的错误。

Error: unsupported operand type(s) for /: 'NoneType' and 'int'

错误和代码是:

#Define iteration#
iteration=0;
iterationNum=0;

#Define encryption#
def encrypt(num,iteration):
    num=cos(num/(iteration+1));

def runEncrypt(array,iterationNum):
    for j in range(iterationNum):
        for i in range (len(array)):
            array[i]=encrypt(array[i],j);

#Internal test area#
array1=[1,2,3,4,5];
encryptedArray=runEncrypt(array1,4);
print(encryptedArray);

1 个答案:

答案 0 :(得分:2)

encrypt函数没有return语句,因此其返回值为None(没有return语句的Python函数的默认返回值)和因此None将在array的外部循环的第一次迭代中分配给runEncrypt()的每个元素。这意味着,在外循环的第二次和后续迭代中,将encrypt()作为参数调用(None, j),并且会因为程序试图划分None而引发错误一个未定义的整数。

要解决此问题,只需按以下方式重新定义encrypt

def encrypt(num, iteration):
    return cos(num / (iteration + 1))