2016-12-18 16 views
0

サブ関数で作成したリストを別のサブ関数に呼び出そうとしています。パラメータとコール関数を使用することは、Pythonに関連する私のアキレス腱です。私は、calculateZscore関数で作成したnewListをmu globalChi関数に呼び出す必要があります。戻り値を別の関数に渡す方法

私の現在のコード:

import os 
import math 

''' 
c:/Scripts/Lab2Data 
NCSIDS_ObsExp.txt 
chisquare.txt 
output.txt 
''' 
def main(): 
    directory = raw_input ("What is the working directory? ")  
    input_file = raw_input ("What is the name of the input file? ")  
    chiTable = raw_input ("What is the name of the chi-squared table? ")  
    outPut = raw_input ("What is the name of the output file? ")  
    path = os.path.join(directory,input_file) 
    path_1 = os.path.join(directory, chiTable) 
    path_2 = os.path.join(directory, outPut) 

if __name__ == "__main__": 
    main()  

def calculateZscore(inFileName, outFileName): 
    inputFile = open(inFileName,"r") 
    txtfile = open(outFileName, 'w') 

for line in inputFile: 
    newList = line.strip().split(',') 
    obsExp = newList[-2:] 
    obsExp = list(map(int, obsExp)) 
    obs = obsExp[0] 
    exp = obsExp[1] 
    zScore = (obs - exp)/math.sqrt(exp) 
    zScore = map(str, [zScore]) 
    newList.extend(zScore) 
    txtfile = open(outFileName, 'w') 
    txtfile.writelines(newList) 

    inputFile.close() #close the files 
    txtfile.close() 
    return newList #return the list containing z scores 

def globalChi(zscoreList): 
print newList  
+0

あなたは何をしようとしているかを示すより簡単な例を作成できますか? –

+0

また、ここに投稿したコードでインデントがオフになっているようです。実際に実行しているものと同じになるように編集してください。このサイトで適切な書式を設定するには、実際の字下げ用のスペースに加えて、各行の先頭に4つのスペースを追加する必要があります。 –

答えて

1

あなたはreturn声明についてお読みください。これは、関数が結果を返すように(引数をとることの反対に)使用され、関数の外では使用できません。 ここでは、正反対です。

関連する問題