2016-03-29 15 views
0

Bunun gibi birçok soru gördüm ama bunların hiçbiri sorunumu doğru şekilde çözemiyor. Anlamlandırılmasının anlamı ya çalışmıyor ya da bana bir anlam ifade etmiyor. Bana uyumu veren kodu ve verdiği hatayı vereceğim. Hata: /: 'NoneType' ve 'int' için desteklenmeyen işlenen tür (ler) i

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

hata mı ve kodudur:

#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); 

cevap

2

encrypt fonksiyon return deyimi yoktur, onun dönüş değeri None (a return olmadan Python fonksiyonları için varsayılan dönüş değeri olacaktır böylece None her elemanına runEncrypt() içinde dış döngünün ilk yinelemesinde atanacaktır. Bu, dış döngünün ikinci ve sonraki yinelemelerinde encrypt()'un argümanları olarak (None, j) ile çağrılacağı ve programın None un tanımsız bir tam sayı ile bölünmeye çalıştığı için hata yükseltileceği anlamına gelir. aşağıdaki gibi

Bu sorunu çözmek için, sadece encrypt yeniden tanımlamak:

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