2 回答

TA贡献1936条经验 获得超6个赞
你的问题是循环:
for i in list:
p = i.strip().split("|")
max_speed = p[7]
if max_speed > a:
a = max_speed
print(i)
pass
else:
print("...")
这将在每次 max_speed > a 时打印出“i”,因此如果您的最大速度按升序排列,它将打印出每辆车。您需要做的是以最大速度保存汽车,然后在最后打印出来。
max_speed_car = ''
for i in list:
p = i.strip().split("|")
max_speed = p[7]
if max_speed > a:
a = max_speed
max_speed_car = i
pass
else:
print("...")
print(max_speed_car)
应该这样做。这是在我的计算机上运行良好的完整代码:(我正在运行 python 3.6)
def topSpeed(cars):
y = input("car type:")
with open(r"\cars.txt","r") as f:
for l in f.readlines():
list = []
p = l.strip().split("|")
type = p[1]
max_speed = p[7]
if y == type:
list.append(l)
a = 0
max_speed_car = ''
for i in list:
p = i.strip().split("|")
max_speed = int(p[7])
if (max_speed > a):
a = max_speed
max_speed_car = i
else:
print("...")
print(max_speed_car)
添加回答
举报