Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
 Аватар для Ivan _pupkin
3 / 3 / 1
Регистрация: 17.12.2018
Сообщений: 257

Начал изучать ООП

04.02.2019, 16:46. Показов 4241. Ответов 32

Студворк — интернет-сервис помощи студентам
Условие задачи: 1 Заполнить массив нулями, кроме первого и последнего элементов, которые должны быть равны единице.

После С++ какое-то не привычное ООП. Помогите пожалуйста решить эту задачу с помощью ООП.

Моя каша:
Python
1
2
3
4
5
6
7
8
9
10
11
12
import random
 
class Array:
    length = 10
    def Fill_arr(self, length):
        self.length = length
        length = int(input("Укажите длину массива: "))
        arr = [random.randint(0, 25) for _ in range(length)]
        print(arr)
 
a = Array
a.Fill_arr()
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.02.2019, 16:46
Ответы с готовыми решениями:

Народ вчера начал изучать питон, и тут застрял, подскажите?
3). Дано натуральное число п. Вычислить: (sin(1))+(sin(1)+sin(2))+…+(sin(1)+sin(2)+…+sin(n))

Начал изучать питон.Как правильно написать код отрисовки карты игры,похожей на цивилизацию с 2d графикой, на python?
Система для отрисовки игры и получения пользовательского ввода. Содержит методы: init(self) redraw(self, map: Map) -- вывод карты на экран

только начал изучать программирование
Можете объяснить разницу в коде 1. a= print(sum(a)) - вот этот вариант работает правильно 2. a=range(1,10) for x in a: if...

32
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
05.02.2019, 01:33
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Ivan _pupkin Посмотреть сообщение
почему в классе есть параметр Object, это наследуемый класс?
object нужен только в том случае, если у Вас питон версии ниже 3.0 и при этом Вам нужно использовать Классы "нового стиля".
Если же у Вас питон версии 3.0 и выше, то в нем все классы и так "нового стиля". Поэтому для питон 3.0 и выше указывать суперкласс object не нужно, как бы излишнее загромождение кода.
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
05.02.2019, 04:39
Цитата Сообщение от Viktorrus Посмотреть сообщение
object нужен только в том случае, если у Вас питон версии ниже 3.0
Неправда. Отличий в 2.7 нет. Как и в 2.6.
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38204 / 21136 / 4310
Регистрация: 12.02.2012
Сообщений: 34,748
Записей в блоге: 14
05.02.2019, 08:31
Цитата Сообщение от Garry Galler Посмотреть сообщение
В Python ООП это не догма, а осознанная необходимость.
И если такой необходимости в ООП для задачи нет, то и применять его большого смысла нет.
- фраза абсолютно верная, особенно, если отбросить слово "Python". Я бы еще понял, если бы предлагалось реализовать обработку каких-либо сущностей, имеющих общие черты - тогда применение ООП имело бы смысл. А заполнить массив нулями...
0
 Аватар для Ivan _pupkin
3 / 3 / 1
Регистрация: 17.12.2018
Сообщений: 257
05.02.2019, 11:20  [ТС]
Catstail, а как тогда по вашему мнению, мне учить ООП ? Я прочёл на форуме (другом) , чтобы понять ООП можно обычные задачи с помощью него решать.
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
05.02.2019, 11:34
ООП удобно для инкапсуляции. У объекта есть переменные (в том числе приватные) и он ни от чего не зависит.

Наследование, полиморфизм… Тоже удобно, если требуется расширить функционал базового класса или чуточку изменить поведение метода.
0
 Аватар для Ivan _pupkin
3 / 3 / 1
Регистрация: 17.12.2018
Сообщений: 257
05.02.2019, 11:37  [ТС]
Рыжий Лис, но ведь в питоне, в ООП нет инкапсуляции, такой же как в с++. Или я чего-то не знаю?
0
1293 / 677 / 367
Регистрация: 07.01.2019
Сообщений: 2,302
05.02.2019, 11:39
Цитата Сообщение от Ivan _pupkin Посмотреть сообщение
в ООП нет инкапсуляции
Инкапсуляция - это,в первую очередь, понимание, что нельзя трогать то, что нельзя трогать, а реализация в языке это дело десятое
1
 Аватар для Ivan _pupkin
3 / 3 / 1
Регистрация: 17.12.2018
Сообщений: 257
05.02.2019, 11:42  [ТС]
tooru, поняла.
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38204 / 21136 / 4310
Регистрация: 12.02.2012
Сообщений: 34,748
Записей в блоге: 14
05.02.2019, 11:53
Ivan _pupkin, начинать можно, например, с этого. И пробовать реализовать в Питоне то, что возможно. Дальше дело само подскажет.
1
 Аватар для Ivan _pupkin
3 / 3 / 1
Регистрация: 17.12.2018
Сообщений: 257
05.02.2019, 12:00  [ТС]
Catstail, спасибо.
0
05.02.2019, 12:12

Не по теме:

Ivan _pupkin, и с полом определись... :)

0
 Аватар для Ivan _pupkin
3 / 3 / 1
Регистрация: 17.12.2018
Сообщений: 257
05.02.2019, 12:22  [ТС]
Catstail, я рептилоид )
0
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
05.02.2019, 17:44
Цитата Сообщение от Ivan _pupkin Посмотреть сообщение
а как тогда по вашему мнению, мне учить ООП ? Я прочёл на форуме (другом) , чтобы понять ООП можно обычные задачи с помощью него решать.
С одной стороны верно, с другой стороны эффективность обучения выше, если Вы используете задачи, для которых ООП органичен. Читайте Лутца М. , это лучший вариант обучения.

Добавлено через 14 минут
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
Отличий в 2.7 нет. Как и в 2.6.
Вы ошибаетесь, отличий в 2.7 и в 2.6 с 3.0 очень много, в том числе принципиальных. На протяжении всей своей книги Лутц М. указывает на эти различия. А вот, что он пишет о классах "нового стиля":

В версии Python 2.2 появилась новая разновидность классов, известная как классы «нового стиля». Классы, следующие оригинальной модели, называют «классическими классами», когда сравнивают их с новой разновидностью. В версии 3.0 осталась только одна разновидность классов, но для пользователей Python 2.X классы по-прежнему делятся на две категории:
• В Python 3.0 все классы автоматически относятся к категории классов «нового стиля», независимо от того, наследуют ли они явно класс object или нет. Все классы наследуют object, явно или неявно, и все объекты являются экземплярами класса object.
• В Python 2.6 и в более ранних версиях классы должны явно наследовать класс object (или другой встроенный тип), чтобы считаться классами «нового стиля» и получить в свое распоряжение все особенности классов нового стиля.

Извините, но я Лутцу доверяю как то больше.

Добавлено через 51 минуту
Цитата Сообщение от Ivan _pupkin Посмотреть сообщение
но ведь в питоне, в ООП нет инкапсуляции, такой же как в с++
Вот что пишет по этому поводу Лутц М. :

"Модули в языке Python экспортируют все имена, которым были присвоены значения на верхнем уровне файлов. В языке нет никаких объявлений, которые позволили бы сделать одни имена видимыми, а другие – невидимыми за пределами модуля. Фактически нет никакого способа предотвратить возможность изменения имен в модуле извне, если у кого-то появится такое желание. Сокрытие данных модуля в языке Python регулируется соглашениями, а не синтаксическими конструкциями. Если задаться целью повредить модуль, изменяя имена в нем, вам ничто не сможет помешать, но, к счастью, я еще не встречал программистов, кто стремился бы это сделать. Некоторые пуристы возражают против такого либерального отношения к сокрытию данных, утверждая в связи с этим, что в языке Python отсутствует возможность инкапсуляции. Однако инкапсуляция в языке Python имеется, просто она, скорее, относится к организации пакетов, чем к возможности накладывать ограничения. "

При изложении материала в книге Лутц показывает те способы, с помощью которых в питоне осуществляется инкапсуляция.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.02.2019, 17:44
Помогаю со студенческими работами здесь

Начал изучать библиотеку scikit-learn(skilearn), Ошибка
Всем общий. Я начал изучение библиотеки scikit-learn(skilearn), все это делаю на среде pycharm. Показывает проблему на этой строке model...

начал изучать с++
начал учить с++, мне порекомендовали купить "Полный справочник по С++" Герберта Шилдта , купил, но вот в чем проблема - примеры программ...

Начал изучать JS
прочитал в книге спецификации CSS и вспомнил молодость, скроллер в стиле Amiga: <!DOCTYPE html> <html> <head>...

Начал изучать С++
Я решил изучить С++ для этого значит скачал VS2010. Но я не могу понять эта реда позволяет конструировать формы в визуальном стиле? Ну...

Только начал изучать C++
Здравствуйте.Я только два дня назад начал изучать С++.И вот такой вопрос,я не пойму как узнать какую функцию необходимо подключить для того...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
33
Ответ Создать тему
Новые блоги и статьи
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер. Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром. возможно получится прикрутить интерпретатор питон для кастомизации игровой логики. что есть на текущий момент:. . .
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2. Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru