Этот код тоже позволяет общаться двум пользователям друг с другом прямо через бот. Админ будет отвечать через консоль на сервере, на котором запущен этот код. А это значит, что ID админов указывать не нужно. Единственое, нужно будет указать токен от бота в 13 строчке.
❤14👍5
Класс — в объектно-ориентированном программировании, модель для создания объектов определённого типа, описывающая их структуру (набор полей и их начальное состояние) и определяющая алгоритмы (функции или методы) для работы с этими объектами.
В Python класс объявляется с помощью ключевого слова class. Вот пример самого простого класса:
class Python:
def __init__(self, value):
self.value = value
def get_value(self):
return self.value
Базовые принципы ООП:
Абстракция — отделение концепции от ее экземпляра;
Полиморфизм — реализация задач одной и той же идеи разными способами;
Наследование — способность объекта или класса базироваться на другом объекте или классе. Это главный механизм для повторного использования кода. Наследственное отношение классов четко определяет их иерархию;
Инкапсуляция — размещение одного объекта или класса внутри другого для разграничения доступа к ним.
В Python класс объявляется с помощью ключевого слова class. Вот пример самого простого класса:
class Python:
def __init__(self, value):
self.value = value
def get_value(self):
return self.value
Базовые принципы ООП:
Абстракция — отделение концепции от ее экземпляра;
Полиморфизм — реализация задач одной и той же идеи разными способами;
Наследование — способность объекта или класса базироваться на другом объекте или классе. Это главный механизм для повторного использования кода. Наследственное отношение классов четко определяет их иерархию;
Инкапсуляция — размещение одного объекта или класса внутри другого для разграничения доступа к ним.
❤21👍2
Магические методы в Python:Создание и удаление объектов
__new__(cls[, ...]) — метод создания типа класса.
__init__(self[, ...]) — конструктор класса. Используется при определении объектов.
__del__(self) — деструктор класса. Вызывается автоматически сборщиком мусора, практически никогда не используется. Вызывается непосредственно перед удалением из памяти экземпляра класса.
Общие свойства объектов
__repr__(self) — информационная строка об объекте. Выводится при вызове функции repr(...) или в момент отладки.
__str__(self) — вызывается при вызове функции str(...), print(...), возвращает строковый объект.
__bytes__(self) — аналогично str(self), только возвращается набор байт.
__format__(self, format_spec) — вызывается при вызове функции format(...) и используется для форматировании строки с использованием строковых литералов.
Методы сравнения объектов между собой
__lt__(self, other) — определяет поведение оператора сравнения «меньше», <.
__le__(self, other) — определяет поведение оператора сравнения «меньше или равно», <=.
__eq__(self, other) — определяет поведение оператора «равенства», ==.
__ne__(self, other) — определяет поведение оператора «неравенства», !=.
__gt__(self, other) — определяет поведение оператора сравнения «больше», >.
__ge__(self, other) — определяет поведение оператора сравнения «больше или равно», >=.
__hash__(self) — вызывается функцией hash(...) и используется, чтобы доказать его уникальность. Например, чтобы добавить объект в set, frozenset, или использовать в качестве ключа в словаре dict.
__bool__(self) — вызывается функцией bool(...) и возвращает True или False в соответствии с реализацией. Если данный метод не реализован в объекте, то при вызове функции bool(...) будет вызываться метод len
Доступ к атрибутам объекта
__getattribute__(self, item) — вызывается при обращении к атрибуту объекта через x.y, где x — объект, а y — атрибут.
__getattr__(self, item) - вызывается если в методе getattribute поднята ошибка AttributeError
__setattr__(self, key, value) — вызывается при обращении к атрибуту объекта с последующим определением значения переданного атрибута. Например: x.y = 1, где x — объект, y — атрибут, а 1 — значение атрибута.
__delattr__(self, item) — вызывается при ручном удалении атрибута у объекта с помощью del x.y, где x — объект, а y — атрибут.
__dir__(self) — вызывается методом dir(...) и выводит список доступных атрибутов объекта.
Создание последовательностей
__len__(self) — вызывается методом len(...) и возвращает количество элементов в последовательности.
__getitem__(self, key) — вызывается при обращении к элементу в последовательности по его ключу (индексу) в таком синтаксисе - x['key'], где x - экземпляр класса.
__setitem__(self, key, value) — вызывается при присваивании какого-либо значения элементу в последовательности в таком синтаксисе - x['key'] = value, где x - экземпляр класса.
__delitem__(self, key) — вызывается при удалении значения в последовательности по его индексу (ключу) с помощью синтаксиса ключевого слова del в таком синтаксисе - вуд x['key'], где x - экземпляр класса.
__missing__(self, key) — вызывается в случаях, когда значения в последовательности не существует.
__iter__(self) — вызывается методом iter(...) и возвращает итератор последовательности, например, для использования объекта в цикле.
__reversed__(self) — вызывается методом reversed(...) и аналогично методу iter возвращает тот же итератор, только в обратном порядке.
__contains__(self, item) — вызывается при проверке принадлежности элемента к последовательности с помощью in или not in.
Унарные операторы
__neg__(self) — определяет поведение для отрицания (-a)
__pos__(self) — определяет поведение для унарного плюса (+a)
__abs__(self) — определяет поведение для встроенной функции abs(...)
__invert__(self) — определяет поведение для инвертирования оператором ~
Обычные арифметические операторы
__add__(self, other) — сложение, оператор +
__sub__(self, other) — вычитание, оператор -
__mul__(self, other) — умножение, оператор *
❤13👍4🥰1
__matmul__(self, other) — умножение матриц, оператор @
__truediv__(self, other) — деление, оператор /
__floordiv__(self, other) — целочисленное деление, оператор //
__mod__(self, other) — остаток от деления, оператор %
__divmod__(self, other) — деление с остатком, определяет поведение для встроенной функции divmod(...)
__pow__(self, other[, modulo]) — возведение в степень, оператор **
__lshift__(self, other) — двоичный сдвиг влево, оператор <<
__rshift__(self, other) — двоичный сдвиг вправо, оператор >>
__and__(self, other) — двоичное И, оператор &
__xor__(self, other) — исключающее ИЛИ, оператор ^
__or__(self, other) — двоичное ИЛИ, оператор |
Преобразования типов
__complex__(self) — преобразование типа в комплексное число
__int__(self) — преобразование типа к int
__float__(self) — преобразование типа к float
__index__(self) — преобразование типа к int, когда объект используется в срезах (выражения вида [start:stop:step])
__round__(self[, ndigits]) — округление числа с помощью функции round(...)
__trunc__(self) — вызывается методом math.trunc(...)
__floor__(self) — вызывается методом math.floor(...)
__ceil__(self) — вызывается методом math.ceil(...)
Вызываемые объекты
__call__(self[, args...]) — позволяет любому экземпляру класса вести себя как обычная функция. Например: x(1, 2), где x - экземпляр класса.
__await__(self) — возвращает итератор, превращая класс в корутину, результат выполнения которой можно получить с помощью await. Подробнее об этом можно узнать в PEP 492.
Контекстные менеджеры
__enter__(self) — определяет начало блока контекстного менеджера, вызванного с помощью with
__exit__(self, exc_type, exc_value, traceback) — определяет конец блока контекстного менеджера.
__aenter__(self) — аналогично enter, только функция возвращает корутину (результат которой можно получить с помощью await)
__aexit__(self, exc_type, exc_value, traceback) — аналогично exit, только функция возвращает корутину (результат которой можно получить с помощью await)
__truediv__(self, other) — деление, оператор /
__floordiv__(self, other) — целочисленное деление, оператор //
__mod__(self, other) — остаток от деления, оператор %
__divmod__(self, other) — деление с остатком, определяет поведение для встроенной функции divmod(...)
__pow__(self, other[, modulo]) — возведение в степень, оператор **
__lshift__(self, other) — двоичный сдвиг влево, оператор <<
__rshift__(self, other) — двоичный сдвиг вправо, оператор >>
__and__(self, other) — двоичное И, оператор &
__xor__(self, other) — исключающее ИЛИ, оператор ^
__or__(self, other) — двоичное ИЛИ, оператор |
Преобразования типов
__complex__(self) — преобразование типа в комплексное число
__int__(self) — преобразование типа к int
__float__(self) — преобразование типа к float
__index__(self) — преобразование типа к int, когда объект используется в срезах (выражения вида [start:stop:step])
__round__(self[, ndigits]) — округление числа с помощью функции round(...)
__trunc__(self) — вызывается методом math.trunc(...)
__floor__(self) — вызывается методом math.floor(...)
__ceil__(self) — вызывается методом math.ceil(...)
Вызываемые объекты
__call__(self[, args...]) — позволяет любому экземпляру класса вести себя как обычная функция. Например: x(1, 2), где x - экземпляр класса.
__await__(self) — возвращает итератор, превращая класс в корутину, результат выполнения которой можно получить с помощью await. Подробнее об этом можно узнать в PEP 492.
Контекстные менеджеры
__enter__(self) — определяет начало блока контекстного менеджера, вызванного с помощью with
__exit__(self, exc_type, exc_value, traceback) — определяет конец блока контекстного менеджера.
__aenter__(self) — аналогично enter, только функция возвращает корутину (результат которой можно получить с помощью await)
__aexit__(self, exc_type, exc_value, traceback) — аналогично exit, только функция возвращает корутину (результат которой можно получить с помощью await)
❤20👍5
Устроим middle python-программистом ещё до того, как вы закончите обучение
Разработчики-преподаватели из Devman решили, что у вас нет времени, чтобы долго учиться и ждать, когда ваше образование окупится! Поэтому разработали программу, которая гарантирует качественный трек сразу до мидла, со стажировкой и трудоустройством еще во время обучения.
Курс стартует 9 января. Первую неделю курса можно попробовать бесплатно, а после решить — продолжать ли платное обучение по треку.
На пробной неделе:
▫️Новички сделают сервис, который показывает погоду в разных городах.
▫️Более опытные успеют написать и собственный сервис по сокращению ссылок.
▫️Джуны создадут своего чат бота или сделают собственный сайт с афишей мероприятий.
После пробной недели вы получите фидбек от ментора и узнаете, какие навыки вам нужно подтянуть.
Чтобы записаться на пробную неделю переходите в бота → bit.ly/3WgrnGb
Реклама. ООО Девман 2VtzqxFDDMm
Разработчики-преподаватели из Devman решили, что у вас нет времени, чтобы долго учиться и ждать, когда ваше образование окупится! Поэтому разработали программу, которая гарантирует качественный трек сразу до мидла, со стажировкой и трудоустройством еще во время обучения.
Курс стартует 9 января. Первую неделю курса можно попробовать бесплатно, а после решить — продолжать ли платное обучение по треку.
На пробной неделе:
▫️Новички сделают сервис, который показывает погоду в разных городах.
▫️Более опытные успеют написать и собственный сервис по сокращению ссылок.
▫️Джуны создадут своего чат бота или сделают собственный сайт с афишей мероприятий.
После пробной недели вы получите фидбек от ментора и узнаете, какие навыки вам нужно подтянуть.
Чтобы записаться на пробную неделю переходите в бота → bit.ly/3WgrnGb
Реклама. ООО Девман 2VtzqxFDDMm
👍5😁1
Постарался написать текст по поводу декораторов в Python. Ссылка на текст про декоратор
Telegraph
Что такое декоратор и как он работает
Декоратор это функция, которая принимает в качестве единственного параметра функцию и возвращает функцию. Вот пример самого простого декоратора:
🔥1
Режимы доступа к атрибутам и методам класса в Python - https://telegra.ph/Rezhimy-dostupa-public-protected-private-01-25
Telegraph
Режимы доступа public, protected, private.
Как мы знаем, мы можем создать класс, а затем обращаться к его атрибутам и методам извне. Например: Но давайте теперь рассмотрим этот класс: И теперь при запуске кода мы получим ошибку: Мы же создали атрибут, но почему возникает исключение? Давайте разберемся.…
👍1
Интересные фишки f-строк в Python - https://telegra.ph/Interesnye-fishki-f-strok-v-Python-01-28
Telegraph
Интересные фишки f-строк в Python
Всем доброго времени суток! Может вы не знали, но f-строки в Python позволяют не только вставить в строку значение переменной, но ещё и отформатировать это значение. Например: С Python 3.8 f-строки позволяют по хитрому вывести и имя, и значение переменной:…
👍5❤1🔥1😁1
Что нужно изучить новичку в Python?
Пласт базовых знаний и навыков включает в себя:
основные навыки пользования терминалом;
понимание принципа работы IDE;
навыки работы с Git;
менеджер пакетов pip;
базы данных (ORM, CRUD-операции);
принципы ООП;
синтаксис языка Python;
алгоритмы и структуры данных;
составление документации;
модульное тестирование.
Выше я прикрепил довольно-таки хорошую roadmap по Python
Пласт базовых знаний и навыков включает в себя:
основные навыки пользования терминалом;
понимание принципа работы IDE;
навыки работы с Git;
менеджер пакетов pip;
базы данных (ORM, CRUD-операции);
принципы ООП;
синтаксис языка Python;
алгоритмы и структуры данных;
составление документации;
модульное тестирование.
Выше я прикрепил довольно-таки хорошую roadmap по Python
👍15🤔2❤1🤩1
Что из себя представляет функция map? Короткая статья - https://telegra.ph/Funkciya-map-v-Python-02-05
Telegraph
Функция map в Python
Всем доброго времени суток! Сегодня я расскажу вам о встроенной функции map. Функция map выполняет одну и ту же функцию для всех элементов итерируемого объекта и возвращает новый итерируемый объект. Функция map принимает не менее 2 параметров. Первый параметр…
👍5
Всем доброго времени суток! Это игра Судоку написанная на Tkinter. Код писал я ещё 1,5 - 2 года назад, так что не судите строго.
Для начала установите библиотеки tkinter и Pillow. Затем фото, которое я прикрепил ниже сохраните под именем sydoku.png в ту же папку, что и файл с кодом. И вот теперь можно запускать код.
Для начала установите библиотеки tkinter и Pillow. Затем фото, которое я прикрепил ниже сохраните под именем sydoku.png в ту же папку, что и файл с кодом. И вот теперь можно запускать код.
👍4
Что такое абстрактные методы и как они реализуются в Python? - https://telegra.ph/Abstraktnye-metody-v-Python-02-15
Telegraph
Абстрактные методы в Python
Всем доброго времени суток! Сегодня я вам расскажу об абстрактных методах в Python. Но не стоит читать эту статью, если вы ещё не знаете что такое ООП и не знакомы с наследованием. Ну а мы тем временем начинаем. Абстрактные методы содержат только определение…
👍1
Forwarded from Devman
По данным Forbes 27% Джуниор разработчиков не могут найти свою первую работу.
Исследование выявило, что поиск первой работы у начинающих программистов занимает от 5 месяцев. Это обусловлено недостатком опыта в коммерческой разработке и отсутствием навыка прохождения технических собеседований.
Столкнувшись с подобной проблемой при наборе программистов, разработчики из «Девмана» решили изменить привычный подход к образованию. Так появился курс-профессия «От Новичка до Мидла».
Команда «Девмана»:
– Придумала задачи, на которых вы не заскучаете;
– Запустила реальные командные проекты для студентов;
– Придумала тренажеры: по дебагу, по английскому и (самое мощное!) по тех.интервью;
– Запустила стажировки для студентов;
– Построила HR-отдел, который трудоустраивает учеников на мидловые позиции с зп от 110тр.
Первая неделя курса – пробная. На ней каждый может ощутить себя Python разработчиком.
Обучение стартует 13 марта. Чтобы принять участие в пробной неделе оставляйте заявку в боте→ http://bit.ly/3ZCSj52
Реклама ООО «Девман» 2VtzqucnHVw
Исследование выявило, что поиск первой работы у начинающих программистов занимает от 5 месяцев. Это обусловлено недостатком опыта в коммерческой разработке и отсутствием навыка прохождения технических собеседований.
Столкнувшись с подобной проблемой при наборе программистов, разработчики из «Девмана» решили изменить привычный подход к образованию. Так появился курс-профессия «От Новичка до Мидла».
Команда «Девмана»:
– Придумала задачи, на которых вы не заскучаете;
– Запустила реальные командные проекты для студентов;
– Придумала тренажеры: по дебагу, по английскому и (самое мощное!) по тех.интервью;
– Запустила стажировки для студентов;
– Построила HR-отдел, который трудоустраивает учеников на мидловые позиции с зп от 110тр.
Первая неделя курса – пробная. На ней каждый может ощутить себя Python разработчиком.
Обучение стартует 13 марта. Чтобы принять участие в пробной неделе оставляйте заявку в боте→ http://bit.ly/3ZCSj52
Реклама ООО «Девман» 2VtzqucnHVw
👍3❤1👎1🎉1
А это одна из лучших roadmap по Python для начинающих. Если что, она взята вот с этого сайта - https://roadmap.sh/ . Советую туда зайти, ведь там есть ещё куча других крутых roadmap, в том числе по back-end разработке - https://roadmap.sh/backend
👍3👎1
Для чего нужна конструкция if __name__ == "__main__"? - https://telegra.ph/Konstrukciya-if-name--main-04-15
Telegraph
Конструкция if __name__ == "main"
Всем привет! Сегодня я расскажу вам, зачем нужна конструкция if __name__ == "__main__" в Python и когда её нужно использовать. Для начала давайте разберёмся, что хранится в переменной __name__: Как мы видим, в этой переменной хранится строка со значением…
❤11👍1
Всем привет! Это адресная книга, созданная с помощью библиотеки tkinter.
Перед запуском кода не забудьте установить библиотеку tkinter и sqlite3. Также советую прочитать руководство пользователя.
Когда запустите код, не забывайте, что некоторые функции можно вызвать лишь через кнопку "Файл" в меню:
Перед запуском кода не забудьте установить библиотеку tkinter и sqlite3. Также советую прочитать руководство пользователя.
Когда запустите код, не забывайте, что некоторые функции можно вызвать лишь через кнопку "Файл" в меню:
👍8❤1
Всем доброе утро! Сегодня я заметил, что вам недоступен файл с исходником судоку. Я уже это исправил, и поэтому теперь вы можете скачать код судоку. Ссылка на код в этом посте - https://news.1rj.ru/str/pythonproga/305
👍1
Давно не публиковал ничего с библиотекой turtle, так что ловите. Это необычная восьмёрка, созданная с помощью квадратов и библиотеки turtle.
👍5❤3🥰1
Всем привет! Это телеграмм бот, который может создавать и читать qr-коды.
Перед запуском кода, вам необходимо установить следующие библиотеки - qrcode, pyTelegramBotAPI, Pillow и opencv-python. Затем в 17 строке укажите токен от созданного вами в @BotFather телеграмм бота. И вот теперь код можно запускать.
Перед запуском кода, вам необходимо установить следующие библиотеки - qrcode, pyTelegramBotAPI, Pillow и opencv-python. Затем в 17 строке укажите токен от созданного вами в @BotFather телеграмм бота. И вот теперь код можно запускать.
👍1🔥1