python 赛车冠军

标签 python class loops python-3.x

<分区>

我需要创建一个 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 个赛车手,我将永远感激不已。

非常感谢您的帮助!

最佳答案

这个汽车类别应该拥有您需要的一切,请注意,您增加赛车手的顺序很重要。不管怎样,从这里你可以创建一个列表/一组汽车,然后循环遍历它,对每一个应用 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

关于 python 赛车冠军,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17002558/

相关文章:

python - 具有每列模式的多列 Pandas Fillna

java - 调用内部带有 for 循环的方法,而不更新变量

c - 掷骰子程序有问题

c - 递增指向 C 中指针的指针

python - While 循环在允许 if 语句运行之前要求输入两次

Python:捕获对内存中文件的所有写入

c++ - 如何在 C++ 中访问 vector 中的子实例

Java 变量未初始化

java - 如何在Android上在特定条件下停止循环并将数据插入数组

python - 推特 API : How to exclude retweets when searching tweets using Twython