2016-12-10 3 views
0

* I'm a Beginner ... Мой друг пытался немного помочь мне, но я не могу его решить. Я не совсем уверен, что делать. Любая помощь будет очень признательна. Я получаю следующую ошибку в averageMPG: «Город имен статистики является параметром и глобальным». Я также не был уверен, как писать обе функции в моей readData как вы можете видеть. Проблема в изображении. Я не удалось частично б, так что я не пошел дальше,Как написать эту функцию в 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

Добро пожаловать в SO. Обычно, когда вы отправляете код, он должен быть [_minimum working example_] (http://stackoverflow.com/help/mcve), иначе пользователи не смогут запускать ваш код. В этом случае выясняется, что проблема очевидна (см. Ответ ShadowRanger), но в целом вы не можете зависеть от вашего кода от файла данных и ожидать, что люди просто смогут понять, что не так. – shadowtalker

+0

@ssdecontrol Прошу прощения. Это моя первая публикация, и я не был уверен, как форматировать вещи. Этот сайт намного более основателен и информативен, чем другие. Я обязательно включу необходимые файлы и работаю над форматированием. Спасибо за комментарий. – John

ответ

1

Вы назвали параметр функции stats_city, а также объявили его значение global. Эти две вещи несовместимы.

AFAICT, ничто из вашего кода на самом деле требует, чтобы что-то было global в первую очередь, поэтому прекратите объявлять все global, и все должно быть в порядке.

В любом случае, штраф на эту конкретную ошибку. Массовое чрезмерное использование global здесь ощущается ужасно много, как программирование для культовых грузов, и у вас есть много других проблем (например, infile.read.split() собирается попытаться разбить метод файла read, вы забыли парсеры, поэтому на самом деле это не , вызывающийread вернуть данные). Вы также возвращаетесь в конце первой итерации каждого цикла, когда я подозреваю, что вы хотите закончить циклы и вернуть накопленные значения. Здесь вам нужно узнать больше об основах; пожалуйста, поговорите с профессором или преподавателем.

0

Кроме того, ваши вызовы «stats.append()», вероятно, должны быть «stats_city.append» в первой функции и «stats_hwy.append» во втором. Вы вернетесь после одной итерации в каждой функции, если вы не настроите свои идентификаторы на обратный вызов.

Смежные вопросы