<p>你会遇到一些问题,因为你把所有的车速放在一堆独立的变量中,而不是放在某个集合中。我建议买本字典。以下是您的代码的外观:</p>
<pre><code>class Carspeed:
def __init__ (self,distance,time):
self.distance=distance
self.time=time
def cspeed(self):
return (self.distance)//(self.time)
# for shorter version of this function - see below
def max_of_speed(car_speeds):
max_speed = None
brand = None
for name, value in car_speeds.items():
speed = value.cspeed()
if max_speed is None or speed > max_speed:
brand = name
max_speed = speed
return brand
car_speeds = {
'Ford': Carspeed(120,1.75),
'Ferrari': Carspeed(100,1.20),
'BMW': Carspeed(205,2.35),
'Porsche': Carspeed(155,1.85),
'Audi': Carspeed(190,2.10),
'Jaguar': Carspeed(255,2.45),
}
for name, value in car_speeds.items():
print(f"{name} speed in MPH:", value.cspeed())
print("The brand with the highest MPH is:", max_of_speed(car_speeds))
</code></pre>
<p>这将打印出:</p>
<pre><code>Ford speed in MPH: 68.0
Ferrari speed in MPH: 83.0
BMW speed in MPH: 87.0
Porsche speed in MPH: 83.0
Audi speed in MPH: 90.0
Jaguar speed in MPH: 104.0
The brand with the highest MPH is: Jaguar
</code></pre>
<p>我试图避免在上面的代码中使用太复杂的东西,但是这里是<code>max_of_speed</code>函数的一行版本,如果您愿意,可以使用它</p>
<pre><code>def max_of_speed(car_speeds):
return max(car_speeds, key=lambda name:car_speeds[name].cspeed())
</code></pre>