2016-12-10 7 views
0

*私は初心者です... 私の友人はこれで少し助けようとしましたが、解決できないようです。私は本当に何をすべきか分からないので、どんな助けも大いに評価されるでしょう。averageMPGで次のエラーが表示されます: "name stats city is parameter and global"。私のreadDataに両方の関数を書く方法あなたが見ることができるように機能します。問題は写真にあります。私は、私はあなたが関数パラメータstats_cityを命名し、またそれglobal値宣言、この関数はPythonでどうやって書くのですか?

def readData(carmodelData_city): 

    global stats_city,stats_hwy 
    infile=open("carModelData_city", 'r') 
    stats_city=[] 
    for s in infile.read.split(): 
     stats.append(float(s)) 
     return stats_city 


def read_Data(carmodelData_hwy): 
    global stats_city,stats_hwy 
    infile=open("carModelData_hwy", 'r') 
    stats_hwy=[] 
    for s in infile.read.split(): 
     stats.append(float(s)) 
     return stats_hwy   


def averageMPG(stats_city, stats_hwy): 
     global stats_city,stats_hwy 
     totals=sum(stats_city) 
     length=len(stats_city) 
     avg1=totals/length 
     print("The averge mpg city is", avg1) 
     totals1=sum(stats_hwy) 
     length1=len(stats_hwy) 
     avg2=totals/length 
     print("The average mpg highway is", avg2) 
     average=(avg1+avg2)/2 
     print("The combined averge mpg is", average) 


def main(): 
global stats_city,stats_hwy 
stats_city=readData("carModelData_city", "r") 
stats_hwy=read_Data("carModelData_hwy", "r") 



[enter image description here][1]main() 
+0

あなたが写真を見逃しました。また、テキストを使用できる場合は、画像を使用しないでください。 –

+1

ようこそ。一般的に、コードを投稿するときは[_minimum working example_](http://stackoverflow.com/help/mcve)にする必要があります。そうしないと、ユーザーはコードを実行できません。この場合、問題は明らかです(ShadowRangerの答えを参照してください)が、一般的にはコードをデータファイルに依存させることができず、人々が何が間違っているかを理解できると期待しています。 – shadowtalker

+0

@ssdecontrol私は謝罪します。これは私の初めての投稿です。私は物事をどのようにフォーマットするのかについてあまりよく分かりませんでした。このサイトは、他のサイトよりも徹底的で有益です。必要なファイルを含め、書式設定に取り組んでいます。コメントありがとう。 – John

答えて

1

を上に移動していないbの部分に成功しませんでした。これらの2つのものは互換性がありません。

AFAICTのコードでは、最初にglobalになる必要はありません。したがって、すべてを宣言しないようにしてください。globalとすると問題ありません。

とにかく、この特定のエラーは問題ありません。 globalの過度の過度使用は、カーゴ・カルト・プログラミングのように大変だと感じています。他にも多くの問題があります(例:infile.read.split()はファイルのreadメソッドを分割しようとしています。データを取り戻す)。また、各ループの最初の反復の終わりに戻ります。ループを終了し、累積された値を戻したいと思うときです。ここではもっと多くの基本を学ぶ必要があります。教授や家庭教師に相談してください。

0

また、 "stats.append()"呼び出しは、最初の関数では "stats_city.append"、2番目の関数では "stats_hwy.append"とする必要があります。リターンコールであなたのidentsを調整しない限り、各関数の1回の反復の後に戻ります。

関連する問題