Ошибка: неподдерживаемые типы операндов для /: 'NoneType' и 'int'
Я видел несколько подобных вопросов, но ни один из них не решил мою проблему правильно. То, как на него отвечают, либо не работает, либо не имеет смысла для меня. Я дам вам код, который дает мне припадки, и ошибку, которую он дает.
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 ответ
encrypt
функция не имеет return
заявление, поэтому его возвращаемое значение будет None
(возвращаемое значение по умолчанию для функций Python без return
заявление) и так None
будет назначен на каждый элемент array
в первой итерации внешнего цикла в runEncrypt()
, Это означает, что во второй и последующих итерациях внешнего цикла encrypt()
будет вызван с (None, j)
в качестве аргументов, и ошибка будет вызвана, потому что программа пытается разделить None
целым числом, которое не определено.
Чтобы решить эту проблему, просто переопределите encrypt
следующее:
def encrypt(num, iteration):
return cos(num / (iteration + 1))