2016-03-29 18 views
0

このようないくつかの質問がありましたが、正しい方法で問題を解決できませんでした。それが答えられている方法を意味することは働いていないか、私には意味をなさない。私はあなたに私にフィット感とそれが与えるエラーを与えるコードを与えます。エラー:/: '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); 

答えて

2

encrypt機能はreturn声明を持っていないので、その戻り値はreturnせずにPythonの機能のためのNone(デフォルトの戻り値になりますステートメント)、Noneは、runEncrypt()の外側ループの最初の反復でarrayのすべての要素に割り当てられます。つまり、外側ループの2回目以降の反復では、(None, j)を引数としてencrypt()が呼び出され、プログラムはNoneを整数で割り切ろうとするため、エラーが発生します。これは未定義です。次のように

これを解決するには、単に encryptを再定義:

def encrypt(num, iteration): 
    return cos(num/(iteration + 1)) 
関連する問題