<p>班级旅行有一张单子,self.leg\u英里你知道吗</p>
<p>类ManyJourneys具有由创建的旅程列表</p>
<pre><code>self.journeys = []
for i in range(2):
self.journeys.append(Journey())
</code></pre>
<p>从一些输入中,我将每段旅程的里程添加到列表中,如下所示:</p>
<pre><code>self.journeys[self.count].addLeg(temp)
</code></pre>
<p>临时工是我从名单上读到的数字。它总是更改为上一行之前输入的内容。你知道吗</p>
<p>出于某种原因,它没有为旅程[1]创建新的列表,而是添加到已创建的列表中。你知道吗</p>
<p>例如:
如果旅程[0]的航程是[4,5,6]
我继续旅程[1],加上4和6
它会:
里程=[4,5,6,4,6]</p>
<p>我不明白为什么它在增加。我有自己的想法。
我不明白如何上传代码或图片。你知道吗</p>
<p>我希望这是足够的信息来解决这个问题</p>
<p>编辑:这是我的代码。你知道吗</p>
<pre><code>class Journey:
def __init__(self,odometer=0,leg_miles=[],leg_gas=[]): #constructor
self.odometer = odometer
self.leg_miles = leg_miles
self.leg_gas = leg_gas
def addLeg(self,miles,gas):
#adds to a list of miles and gas
self.leg_miles.append(miles)
self.leg_gas.append(gas)
def getLists(self):
#returns the list of miles and the list of gas
return self.leg_miles,self.leg_gas
def calculate(self):
#calculate the miles per litre for the journey and return
miles_per_litre = 0
for i in range(len(self.leg_miles)): #calcs miles per litre for each leg and adds to total
miles_per_litre += int(self.leg_miles[i]/self.leg_gas[i])
return miles_per_litre
class ManyJourneys:
def __init__(self,name):
self.myfile = open(name,"r")
self.content = self.myfile.read().split("\n")
self.journeys = []
for i in range(self.content.count("")+1):
self.journeys.append(Journey())
self.count = 0
for i in self.content:
if i == "":
self.count+=1
else:
temp = i.split(" ")
self.journeys[self.count].addLeg(int(temp[0]),int(temp[1]))
def statistics(self):
sum = 0
for i in self.journeys:
sum += i.calculate()
return sum/len(self.journeys)
def main():
filename = input("Please enter a file name. (Eg: test.txt): ")
manyJourneys1 = ManyJourneys(filename)
print("You got {0} miles per litre.".format(manyJourneys1.statistics()))
main()
</code></pre>
<p>一个示例文本文件</p>
<pre><code>100 54
340 109
23 4
333 33
4500 678
</code></pre>