Dustin C Ответов: 1

Программа Nascar - как я могу заставить это работать?


Классное задание таково:

Определите класс Car со следующими атрибутами:

Общее Количество Миль По Одометру
Скорость в милях в час
имя драйвера
Спонсор
Общее количество миль пробега и скорость должны быть инициализированы до нуля.

Создайте список из 20 уникальных автомобилей со случайными (или реальными (ссылки на внешний сайт) ссылками на внешний сайт) именами водителей и спонсоров.

Ваша основная программа должна имитировать прогресс транспортных средств в гонке. Каждую смоделированную минуту транспортные средства выбирают новую случайную скорость между 1 и 120, и их пробегные мили обновляются каждую минуту с помощью этого уравнения:

odometer_miles = odometer_miles + скорость * время
Поскольку скорость выражается в милях в час, время также должно быть в часах (1 минута-1/60 часть часа).

Первый автомобиль, достигший 500 миль, должен быть объявлен победителем, напечатав имя водителя и имя спонсора.

Включите в определение класса любые полезные методы, которые вы считаете подходящими.


Код находится в Python 3.x

# Nascar
from random import randint
import time
driverList = ["John", "Smith", "Alex", "Travis", "Bob", "James", "Dan", "David", "Mike", "Cody", "Kyle", "Trent", "Tristen", "Seth", "Brant", "Jacob", "Chase", "Ian", "Colter", "Austin"]
sponsorList = ["Target", "Walmart", "Cisco", "Costco", "Albertson", "Lumber Co", "Exxon", "Wonder Bread", "Taco Bell", "Taco John", "McDonalds", "Burger King", "Wendy's", "Safeway", "Town Pump", "Dodge", "Ford", "Chevrolet", "Porshe", "Nissan"]

class Car:
    def __init__(self, odometer, speed, driver, sponsor):
        self.odometer = odometer
        self.speed = speed
        self.driver = driverList
        self.sponsor = sponsorList
        
def main():
    odometer = 0
    print("Let the race begin!")
    while odometer < 500:
        Nascar = {driverList , sponsorList}
        time.sleep(3)
        speed = randint(1, 121)
        odometer = odometer + speed * 0.17
        if odometer < 500:
            print("So far " + Nascar[each_sponsor] + " has traveled '{}' miles.".format(odometer))
        else:
            print("The winner is " + Nascar[each_sponsor] + ", sponsored by " + each_sponsor)
        return
main()



Как я могу заставить этот код работать?

Что я уже пробовал:

Я пытался найти ресурсы и попытаться исправить ошибку, но безуспешно.

Dave Kreskowiak

Вам придется точно определить, что означает "работа". Что должен делать этот код? Что он делает? А чего он не делает? Какие-нибудь ошибки?

Dustin C

Просто обновил свой вопрос с требованиями к моему классу.

Richard MacCutchan

Nascar[each_sponsor]
Вы еще не определились each_sponsor где угодно, так что это никогда не сработает. Вам нужно создать цикл для печати статуса каждого автомобиля.

1 Ответов

Рейтинг:
0

alin1

Вы получаете эту ошибку:

Traceback (most recent call last):
  File "a.py", line 27, in <module>
    main()
  File "a.py", line 18, in main
    Nascar = {driverList , sponsorList}
TypeError: unhashable type: 'list'


Проблема заключается в следующем Nascar = {driverList , sponsorList} И еще я не понимаю, что именно Nascar[each_sponsor] так и должно быть.


Dustin C

Просто обновил свой вопрос с требованиями к моему классу.