4

我需要创建一个 Python 程序,该程序将使用方程式odometer_miles = odometer_miles + speed * time和一个名为的类来确定比赛的获胜者,该类Car具有“总里程表里程”、“速度”、“司机姓名”和“赞助商”属性。

speed变量是每分钟随机生成的 0 到 120 (mph) 之间的数字。然后再次执行方程,更新odometer_miles变量。

一旦odometer_miles变量达到 500(或大于 500 的最接近的值)英里,比赛就结束了,并且无论哪个赛车手(20 人一组)达到 500 英里,都将被宣布为获胜者。确定获胜者后,程序需要打印“司机姓名”和“赞助商”。

我认为我已经正确创建了课程,但程序的其余部分远远超出了我的能力。我的课本还不够用,我也联系不上我的教授。我花了过去几个小时试图弄清楚它无济于事。

这是我到目前为止所拥有的:

class Car:
    def __init__(self, odo_miles, speed, driver, sponsor):
        self.odo_miles = odo_miles
        self.speed = speed
        self.driver = driver
        self.sponsor = sponsor

如果有人能告诉我如何只用两名赛车手或足够我可以填补所需的全部 20 名赛车手,我将永远感激不尽。

非常感谢你的帮助!

4

1 回答 1

0

这个车类应该有你需要的一切,注意你增加赛车手的顺序很重要。无论如何,从这里你可以创建一个列表/一组汽车,然后循环遍历它,将 updateMinute() 应用到每一个,直到你有一个赢家。当 updateMinute() 返回 True 时,您可以跳出循环,并使用您当前更新的汽车来查找驱动程序和赞助商。

import random
class Car:

    def __init__(self, odo_miles, speed, driver, sponsor):
        self.odo_miles = odo_miles
        self.speed = speed
        self.driver = driver
        self.sponsor = sponsor

    def updateMinute():
        self.odo_miles += speed              #I'm updating the distance before newSpeed
                                             #So that the original speed passed in is used
        if self.odo_miles > 500:
            return True
        self.speed = random.randrange(120)
        return False

要遍历列表:

while True:
    for c in cars:
        finished = c.updateMinute()
        if finished:
            print_relevant_stuff()
            return
于 2013-06-08T18:41:56.020 回答