繁体   English   中英

如何在Python中编写此函数?

[英]How do I write this function in Python?

*我是一个初学者...我的朋友试图对此有所帮助,但我似乎无法解决。 我不太确定该怎么做,将不胜感激。平均MPG中出现以下错误,“名称统计城市是参数和全局”。我也不确定如何在我的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()

您将函数参数命名为stats_city ,并将其声明为global值。 这两件事是不相容的。

AFAICT,您的代码实际上都不要求任何东西首先是global的,因此请停止将所有内容声明为global ,您应该会很好。

好吧,无论如何都可以解决该特定错误。 这里大量使用global感觉就像是对cult的编程一样可怕,并且您还有许多其他问题(例如infile.read.split()将尝试拆分文件的read方法;您忘记了parens,所以它不是实际上调用 read来获取数据)。 当我怀疑要完成循环并返回累加值时,您还将在每个循环的第一次迭代结束时返回。 您需要在这里学习更多的基础知识。 请与教授或导师交谈。

同样,您的“ stats.append()”调用在第一个函数中应该为“ stats_city.append”,在第二个函数中应为“ stats_hwy.append”。 除非您在return调用上调整标识,否则在每个函数中迭代一次后将返回。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM