Как сделать машину в питоне
Перейти к содержимому

Как сделать машину в питоне

  • автор:

Как сделать машину состояний на python?

Меня не интересуют готовые решения и конкретная реализация, мне нужны только знания о том как это работает.
Особенно меня интересует создание группы состояний.

  • Вопрос задан более года назад
  • 644 просмотра

8 комментариев

Простой 8 комментариев

mayton2019 @mayton2019

Если хочешь практиковаться — бери практическую задачу. Например парсер выражений. Или бинарных файлов.

gnifajio

Gnifajio None @gnifajio Автор вопроса
mayton2019, как бы вопрос не об этом.

phaggi

Алан Гибизов @phaggi Куратор тега Python

Gnifajio None, вы знаете… сам ваш вопрос в известном смысле не информативен и не полезен. Вас ведь «как-то направили», но вам не нравится это «как-то». Выглядит так, что «как-то направить» у вас звучит типа «разберите за меня этот сложный вопрос и объясните его мне».
А это уже не вопрос, а задание.

Вот если бы вы пришли со своим кодом, и написали бы: я решаю такую-то проблему, ожидаю вот такое, а получается вот что. Вот traceback, вот окружение, вот параметры и версии ПО.

Тогда вероятность получения ответа была бы повыше, пользы и вам и другим было бы гораздо больше.

gnifajio

Gnifajio None @gnifajio Автор вопроса

Алан Гибизов, тут проблема в другом, я не могу понять принцип, по которому можно сделать такую машину состояний, как я показал. Мне не нужны исходники. Мне нужны только знания.

phaggi

Алан Гибизов @phaggi Куратор тега Python

Gnifajio None, а здесь не институт и не библиотека. Здесь дают конкретные ответы на конкретные вопросы. Вот у вас какой конкретный вопрос, на который можно ответить однозначно?
Я вижу вопрос «машина состояний на питон». Какой на него может быть однозначный ответ? «Да, машина».

Смотрим дальше… никаких конкретных вопросов в тексте нет. Есть просьба «как-то направить». Это не конкретно и не подразумевает однозначного ответа.

В общем, очень рекомендую переработать вопрос. Иначе он будет удалён по, например, п.5.12 Регламента. Также обратите внимание на п.3.2, 3.4, 3.6.

gnifajio

Gnifajio None @gnifajio Автор вопроса

Алан Гибизов, п.5.12 тут мне кажется не подходит, т.к. это не задача, это более общий вопрос, который может помочь другим участникам в решении похожей проблемы. К тому же меня не интересует конкретная реализация, мне нужны знания, т.к. я столкнулся с проблемой, которую не могу решить, видимо за недостатком каких-то знаний.
п.3.2 Я постарался выполнить, указав, что в библиотеке aiogram содержится подобное решение.
п.3.4 Ну тут да, пару слов я поправлю в ближайшее время.
п.3.6 Тут может быть применен только к заголовку. Меня можно оправдать тем, что сервис обязует ставить вопросительный знак в конце заголовка. Корректное вопросительное предложение длиннее чем обычное, а я пытался максимально сократить заголовок с сохранением смысла.

Моя просьба как-то направить связана с недостатком знаний, и именно по этой причине на этом сервисе появился этот вопрос.

Такой однозначный ответ как у вас а-ля «Да, машина» можно дать на абсолютно любой вопрос. Приведу пример: «Где найти драйвер на EPSON L110 под Linux Mint 18.1 Cinnamon?»
Вроде корректный вопрос, да? Но на него можно дать однозначный ответ «В интернете».

Класс Car

Напишем класс, представляющий автомобиль. Этот класс будет содержать информацию о типе машины, а также метод для вывода краткого описания:

. .»»»Простая модель автомобиля.»»»

(1) . .def __init__(self, make, model, year):

. . . .»»»Инициализирует атрибуты описания автомобиля.»»»

(2) . .def get_descriptive_name(self):

. . . .»»»Возвращает аккуратно отформатированное описание.»»»

. . . .long_name = str(self.year) + ‘ ‘ + self.make + ‘ ‘ + self.model

(3)my_new_car = Car(‘audi’, ‘a4’, 2016)

В точке (1) в классе Car определяется метод __init__(); его список параметров начинается с self, как и в классе Dog. За ним следуют еще три параметра: make, model и year. Метод __init__() получает эти параметры и сохраняет их в атрибутах, которые будут связаны с экземплярами, созданными на основе класса. При создании нового экземпляра Car необходимо указать фирму-производителя, модель и год выпуска для данного экземпляра.

В точке (2) определяется метод get_descriptive_name(), который объединяет год выпуска, фирму-производителя и модель в одну строку с описанием. Это избавит вас от необходимости выводить значение каждого атрибута по отдельности. Для работы со значениями атрибутов в этом методе используется синтаксис self.make, self.model и self.year.

В точке (3) создается экземпляр класса Car, который сохраняется в переменной my_new_car. Затем вызов метода get_descriptive_name() показывает, с какой машиной работает программа:

Чтобы класс был более интересным, добавим атрибут, изменяющийся со временем, — в нем будет храниться пробег машины в милях.

Класс «Машина»

Создать в python класс «Машину» ( Цвет,модель,цена ) Экземпляр класса отображать в формате
«Bmw: белая, 1 млн рублей»
класс должен содержать конструктор, метод __str__
который отражает экземпляр класса

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Создать базовый класс Car (машина) и производный класс Lorry (грузовик): ООП ошибки
Создать базовый класс Car (машина), характеризуемый торговой маркой (строка), числом цилиндров.

Создать класс – какая-то неизвестная машина Класс имеет поля model – название машины power – от 0.0
ДОБРЫЙ ДЕНЬ,помогите пожалуйста с решением.не получается решить.буду очень благодарен.заранее.

Класс CCar (Машина)
Спроектировать класс, реализующий предметную область по варианту, и разработать программу-драйвер.

Описать класс «Машина»
Вообще не секу в c#, но надо сдать. Задание 1. «Машина» Описать класс «Машина». Поля класса.

Регистрация: 16.03.2020
Сообщений: 35

не очень понял смысл, но условно так:

1 2 3 4 5 6 7 8 9 10 11 12
class Machine: def __init__(self, color, model, price): self.color = color self.model = model self.price = price def __str__(self): return self.model + ": " + self.color + ", " + self.price + "рублей." car = Machine("белая", "Bmw", "1 млн") print(str(car))

Эксперт Python

691 / 474 / 204
Регистрация: 22.03.2020
Сообщений: 1,052
Rogdy, достаточно просто

print(car)

И я бы советовал использовать fstring. Визуально более понятная запись.

def __str__(self): return f": , рублей."

4974 / 3210 / 1125
Регистрация: 21.03.2016
Сообщений: 7,940

shsn, вам наверно скучно что вы дублируете свои темы на которые уже есть ответ? Ооп Конструктор наверно нужно уже минус в репутацию ставить

87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Нужно реализовать класс машина
Нужно создать один класс "Машина" с функциями — марка авто, вес и скорость, с использованием типов.

Создать базовый класс Car(машина)
Создать базовый класс Car(машина), характерезуемой торговой маркой , числом цилиндров , мощностью.

Создать класс машина и унаследовать автобус
Добрый день. Две лабы надо сделать. Одну сделал она легкая — создать класс машина и унаследовать.

Создать класс Машина и унаследовать от него Грузовик
Создать класс Машина, содержащий в качестве параметров марку(строка), число цилиндров, мощность.

Создать класс Машина и унаследовать от него Грузовик
помогите пожалуйста, напишите полный код. Буду очень благодарен! Перепечатывайте задание на.

Создать класс Машина, определить конструкторы, деструктор и функцию печати.
Задача. Создать класс машина, имеющая поля: марка авто, число цилиндров, мощность. Определить.

Python. Создать полный дубль коллекции

У нас ответственная миссия: запустить в космос автомобиль. Сначала подготовим инфраструктуру — собственно машину и мега-пушку:

from dataclasses import dataclass  @dataclass class Car:  brand: str  model: str  driver: str  class SpaceCannon:  def launch(self, cars):  car = cars[0]  print(f"car.brand> car.model> driven by car.driver> sent to space!") 
car = Car(brand="Tesla", model="Roadster", driver="Starman") cars = [car] cannon = SpaceCannon() cannon.launch(cars)  Tesla Roadster driven by Starman sent to space! 

Как всякий уважающий себя космический завод, наш умеет копировать машины. Очень удобно — можно сделать копию коллекции машин и всячески над ней издеваться. Например, очистить:

copied_cars = cars[:] copied_cars.clear() 

Оригинальный список при этом не пострадал, его можно спокойно запускать:

cannon.launch(cars) Tesla Roadster driven by Starman sent to space! 

О, тут инженерам ещё хохма в голову пришла:

copied_cars = cars[:] copied_cars[0].brand = "ToSky" copied_cars[0].model = "Zhiguli" copied_cars[0].driver = "Roskosmos guy" 

Очень смешно, отправить в космос чела из Роскосмоса на жигулях, ха-ха. Пошутили и хватит, запускаем Теслу:

cannon.launch(cars) ToSky Zhiguli driven by Roskosmos guy sent to space! 

Проблема в том, что cars[:] выполняет так называемое поверхностное копирование — сам список копируется, но в качестве его элементов используются ссылки на элементы оригинального списка.

Поэтому, меняя copied_cars[0] , мы превратили оригинальную Теслу в Жигули (что само по себе заслуживает уважения, конечно).

Создать полный дубликат коллекции поможет модуль copy :

import copy  car = . cars = [car] copied_cars = copy.deepcopy(cars) copied_cars[0].model = "Zhiguli" cannon.launch(cars)  Tesla Roadster driven by Starman sent to space! 

Подписывайтесь на канал, чтобы не пропустить новые заметки ��

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *