我已经看到过像这样的几个问题,但没有一个问题以正确的方式解决了我的问题。意味着它的回答方式要么不起作用,要么对我没有意义。我将为您提供适合的代码以及它给出的错误。
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);
答案 0 :(得分:2)
encrypt
函数没有return
语句,因此其返回值为None
(没有return
语句的Python函数的默认返回值)和因此None
将在array
的外部循环的第一次迭代中分配给runEncrypt()
的每个元素。这意味着,在外循环的第二次和后续迭代中,将encrypt()
作为参数调用(None, j)
,并且会因为程序试图划分None
而引发错误一个未定义的整数。
要解决此问题,只需按以下方式重新定义encrypt
:
def encrypt(num, iteration):
return cos(num / (iteration + 1))