Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите исправить ошибку в коде PYTHON

Max Parker Ученик (86), на голосовании 1 год назад
1. Создайте класс объектов Auto для подержанных машин со следующими характеристиками:
1. Марка.
2. Модель.
3. Год производства.
4. Пробег.
5. Цена.
6. Отечественное или зарубежное производство.

2. Создайте 5 объектов со следующими характеристиками:
KiaSor: «Kia», «Sorrento», 2003, 223 000 км, 415 000 руб, производство: Россия
HyunSol: «Hyundai», «Solaris», 2015, 41 000 км, 869 000 руб, производство: Корея
VolkPas: «Volkswagen», «Passat», 2012, 127 000 км, 900 000 руб производство: Германия
LadaPri: «Lada», «Priora», 2011, 139 000 км, 150 000 руб, производство: Россия
UazPat: «UAZ», «Patriot», 2011, 150 000 км, 345 400 руб, производство: Россия

3а. Создайте метод класса makeModel, позволяющий распечатать список объектов, причем на печать должны быть выведены только марка и модель автомобиля:
Например, название объекта auto1: ‘Kia Sorrento‘

3b. Создайте метод класса, позволяющий распечатать все свойства объекта, например:
'Kia Sorrento - Price: RUR415000, Production Year: 2003, Mileage: 223000'

4. Создайте список listOfCarNames, который содержит названия (марка+модель) всех автомобилей из списка выше.

5. Создайте функцию, в результате которой возникнет список sortedByMileage, в котором содержатся все автомобили, рассортированные по пробегу ['Hyundai Solaris', '41000'], ['Volkswagen Passat', '127000'], ['Lada Priora', '139000'], ['UAZ Patriot', '150000'], ['Kia Sorrento', '223000']
 Чтобы написать свою программу, дополните шаблон, представленный ниже (test_auto.py). 

test_auto.py

class Auto:

def init(self, make, model, year, mileage, price, origin_ru):
''' Вставьте свой код здесь '''

def makeModel(self):
''' Вставьте свой код здесь '''

def getAttrValue(self, attr):
return getattr(self, attr)

def repr(self):
''' Вставьте свой код здесь '''

''' Вставьте свой код здесь '''
##KiaSor
##HyunSol
##VolkPas
##LadaPri
##UazPat

listOfCarNames=[]
''' Вставьте свой код здесь '''

sortedByMileage=[]
''' Вставьте свой код здесь '''
Мой код:

 class Auto: 
def __init__(self, make, model, year, mileage, price, origin_ru):
self.make = make
self.model = model
self.year = year
self.mileage = mileage
self.price = price
self.origin_ru = origin_ru

def makeModel(self):
return f"{self.make} {self.model}"

def __repr__(self):
return f"{self.make} {self.model} - Price: RUR{self.price}, Production Year: {self.year}, Mileage: {self.mileage}"

KiaSor = Auto("Kia", "Sorrento", 2003, 223000, 415000, "Россия")
HyunSol = Auto("Hyundai", "Solaris", 2015, 41000, 869000, "Корея")
VolkPas = Auto("Volkswagen", "Passat", 2012, 127000, 900000, "Германия")
LadaPri = Auto("Lada", "Priora", 2011, 139000, 150000, "Россия")
UazPat = Auto("UAZ", "Patriot", 2011, 150000, 345400, "Россия")

listOfCarNames = [auto.makeModel() for auto in [KiaSor, HyunSol, VolkPas, LadaPri, UazPat]]

def sort_by_mileage(cars):
sorted_cars = sorted(cars, key=lambda car: car.mileage)
return [(car.makeModel(), car.mileage) for car in sorted_cars]

sortedByMileage = sort_by_mileage([HyunSol, VolkPas, LadaPri, UazPat, KiaSor])

print(KiaSor.makeModel())
print(KiaSor)

print(listOfCarNames)
print(sortedByMileage)
Ошибка видимо в sortedByMileage.
Сама ошибка:
Дополнен 1 год назад
Ошибка на фото:
Голосование за лучший ответ
Илон Макс Профи (749) 1 год назад
class Auto:
def __init__(self, make, model, year, mileage, price, origin_ru):
self.make = make
self.model = model
self.year = year
self.mileage = mileage
self.price = price
self.origin_ru = origin_ru

def makeModel(self):
return f"{self.make} {self.model}"

def __repr__(self):
return f"{self.make} {self.model} - Price: RUR{self.price}, Production Year: {self.year}, Mileage: {self.mileage}"

KiaSor = Auto("Kia", "Sorrento", 2003, 223000, 415000, "Россия")
HyunSol = Auto("Hyundai", "Solaris", 2015, 41000, 869000, "Корея")
VolkPas = Auto("Volkswagen", "Passat", 2012, 127000, 900000, "Германия")
LadaPri = Auto("Lada", "Priora", 2011, 139000, 150000, "Россия")
UazPat = Auto("UAZ", "Patriot", 2011, 150000, 345400, "Россия")

listOfCarNames = [auto.makeModel() for auto in [KiaSor, HyunSol, VolkPas, LadaPri, UazPat]]

def sort_by_mileage(cars):
sorted_cars = sorted(cars, key=lambda car: car.mileage)
return [(car.makeModel(), car.mileage) for car in sorted_cars]

sortedByMileage = sort_by_mileage([HyunSol, VolkPas, LadaPri, UazPat, KiaSor])

print(KiaSor.makeModel())
print(KiaSor)

print(listOfCarNames)
print(sortedByMileage)
Max ParkerУченик (86) 1 год назад
Такой же код как у меня, на последнем фото видишь что ему не нравиться?
Похожие вопросы