*我是初学者...... 我的朋友试图帮助我一点,但我似乎无法解决它。我不确定该做什么,所以任何帮助都会非常感激。我在averageMPG中得到以下错误,"名称统计城市是参数和全球"。我也不是真的确定如何在我的readData函数中编写这两个函数,如您所见。问题出在图片中。我没有在b部分取得成功所以我没有继续前进,
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)
您将函数参数命名为stats_city
,并将其声明为global
值。这两件事是不相容的。
AFAICT,您的代码实际上并不需要任何内容global
,因此请停止声明所有内容global
,您应该没问题。
好吧,反正那个特定的错误。这里大量过度使用global
感觉非常像货物崇拜编程,你还有许多其他问题(例如infile.read.split()
会尝试拆分文件的read
方法;你忘了parens,所以它实际上并不是调用 read
来获取数据。当我怀疑你想要完成循环并返回累积值时,你也会在每个循环的第一次迭代结束时返回。你需要在这里学到更多基础知识;请与教授或导师交谈。
答案 1 :(得分:0)
另外,你的" stats.append()"电话应该是" stats_city.append"在第一个函数和" stats_hwy.append"在第二。除非您在回访中调整您的标识,否则您将在每个函数中重复一次后返回。