Ошибка: неподдерживаемые типы операндов для /: '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))
Другие вопросы по тегам