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

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

04.02.2019, 16:46. Показов 4366. Ответов 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
38223 / 21155 / 4314
Регистрация: 12.02.2012
Сообщений: 34,765
Записей в блоге: 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,304
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
38223 / 21155 / 4314
Регистрация: 12.02.2012
Сообщений: 34,765
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru