Программистика
关闭频道
Лучший канал про python Ссылка для друга: https://t.me/+Ai6ughKtf5g2ZmFi Купить рекламу: https://telega.in/c/+Ai6ughKtf5g2ZmFi Админ: @JeyRahol По рекламе: @ReivuManager
显示更多5 770
订阅者
-424 小时
+57 天
-8730 天
帖子存档
5 765
💻 Вопрос из собеседования: Как объединить два массива?
Помните, что массивы — это не списки. Это библиотека Numpy и здесь работает линейная алгебра.
Для объединения массивов нужно использовать соответствующую функцию Numpy:
import numpy as np
a = np.array([1,2,3])
b = np.array([4,5,6])
np.concatenate((a,b))
#=> array([1, 2, 3, 4, 5, 6])
Надеюсь это поможет вам пройти собеседование на желаемую вами работу, удачи🔥🔥🔥@programistica // #jobs
5 765
👀 Книга: Python. Непрерывная интеграция и доставка
⏺Автоматическое тестирование
⏺Модульное тестирование в Python
⏺Непрерывная интеграция с Jenkins
⏺Непрерывная доставка
⏺Сборка пакетов
⏺Распространение пакетов Debian
⏺Развертывание пакетов
И многое другое
@programistica // #doc
5 765
Попробуйте себя в роли специалиста по кибербезопасности на мини-курсе Skillbox. За 5 дней вы познакомитесь с профессией и научитесь защищать веб-серверы. Примерите роль хакера — перехватите пароль и подделаете письмо. А потом обезвредите ПО и поймёте, хотите ли развиваться дальше в этом направлении.
Подробнее по ссылке: https://epic.st/XQd7QI?erid=2VtzqvG4pRW
В программе мини-курса:
— Основы профессии и прослушка трафика.
— Как создавать и различать поддельные письма.
— Как взломать сервер и обезвредить угрозу взлома.
— Какие бывают методы защиты серверов.
Чтобы выполнять практические задания, вам нужно установить VirtualBox — систему для запуска учебных виртуальных машин. Ссылку на установку пришлём после регистрации на мини-курс.
На финальном вебинаре вы обсудите со спикером практические задания и сможете задать вопросы, возникшие в ходе курса.
Спикер — Сергей Кручинин, проверяющий эксперт в Skillbox. Руководил проектами в Mail.ru Group, работал в WEBINAR.RU, ГК Astra Linux, МИФИ, МГТУ им. Н. Э. Баумана.
Всех участников ждут бонусы: 5 полезных материалов о приёмах взлома, методах защиты и тестирования серверов, персональная карьерная консультация, сертификат на скидку 10 000 рублей и год бесплатного изучения английского языка.
Первый бонус — сразу после регистрации!
Реклама. ЧОУ ДПО «Образовательные технологии «Скилбокс (Коробка навыков)», ИНН: 9704088880
5 765
⚙️ Работа с файлами с использованием менеджера контекста
Работа с файлами в Python часто включает в себя открытие файла, чтение из него или запись в него и, наконец, закрытие файла. Одним из наиболее эффективных и безопасных способов управления файлами является использование менеджера контекста с ключевым словом
with. Этот подход не только упрощает код, но и автоматически заботится о закрытии файла после завершения работы, даже если в процессе выполнения возникли исключения.
Принцип работы
Менеджер контекста в Python реализован через протокол контекстного менеджера, который определяется методами __enter__ и __exit__. Когда выполнение кода входит в блок with, вызывается метод __enter__ объекта. После завершения выполнения кода в блоке with (или при возникновении исключения) автоматически вызывается метод __exit__, который и заботится о корректном закрытии файла или освобождении ресурсов.
Примеры использования
⏺Запись в файл
with open('example.txt', 'w') as file:
file.write('Привет, Python!')
В этом примере файл example.txt открывается для записи ('w'). Всё, что записывается в файл внутри блока with, будет автоматически сохранено, а файл закрыт после выхода из блока.
⏺Чтение из файла
with open('example.txt', 'r') as file:
content = file.read()
print(content)
Здесь файл example.txt открывается для чтения ('r'). Содержимое файла считывается и выводится на экран. После выхода из блока with файл автоматически закрывается, что предотвращает утечку ресурсов или возможные ошибки при попытке доступа к уже закрытому файлу.
Преимущества использования менеджера контекста
⏺Автоматическое закрытие файла: Менеджер контекста автоматически закрывает файл по завершении работы с ним, что уменьшает риск ошибок и утечек ресурсов.
⏺Упрощение кода: Использование with делает код более читаемым и упрощает управление ресурсами.
⏺Обработка исключений: Менеджер контекста обеспечивает корректное закрытие файла даже в случае возникновения исключений внутри блока with.
Использование менеджера контекста при работе с файлами в Python является лучшей практикой, обеспечивающей более безопасный и удобный способ управления файловыми ресурсами.
@programistica // #article5 765
💻 Вопрос из собеседования: В чем разница между глубокой и мелкой копиями?
Обсудим это в контексте изменяемого объекта — списка. Для неизменяемых объектов глубокое и мелкое (поверхностное) копирование обычно не отличаются.
Рассмотрим три сценария.
⏺Поставьте ссылку на исходный объект. Она отсылает новое имя
li2 к тому же месту в памяти, на которое указывает li1. Поэтому любое изменение в li1 также происходит с li2:
li1 = [['a'],['b'],['c']]
li2 = li1
li1.append(['d'])
print(li2)
#=> [['a'], ['b'], ['c'], ['d']]
⏺Создайте мелкую копию оригинала. Ее можно создать с помощью конструктора list() или mylist.copy().
Мелкая копия создает новый объект, но заполняет его ссылками на оригинал. Таким образом, добавление нового объекта в исходный список li3 не отразится в li4, а вот изменение объектов в li3 — отразится:
li3 = [['a'],['b'],['c']]
li4 = list(li3)
li3.append([4])
print(li4)
#=> [['a'], ['b'], ['c']]
li3[0][0] = ['X']
print(li4)
#=> [[['X']], ['b'], ['c']]
⏺Создайте глубокую копию. Это делается с помощью copy.deepcopy(). Оригинал и копия полностью независимы, а изменения в одном не оказывают никакого влияния на другой:
import copy
li5 = [['a'],['b'],['c']]
li6 = copy.deepcopy(li5)
li5.append([4])
li5[0][0] = ['X']
print(li6)
#=> [['a'], ['b'], ['c']]
Надеюсь это поможет вам пройти собеседование на желаемую вами работу, удачи🔥🔥🔥@programistica // #jobs
5 765
👀 Книга: Безопасность веб-приложений на Python
⏺Хеширование
⏺Симметричное шифрование
⏺Асимметричное шифрование
⏺Сеанс HTTP
⏺Противостояние атакам
И многое другое
@programistica // #doc
5 765
🖼️ Библиотека Python: Elasticsearch-dsl
Elasticsearch-dsl - это высокоуровневая библиотека для работы с Elasticsearch на языке Python. Она предоставляет более удобный и питонический API для создания запросов и обработки ответов от Elasticsearch.
⚙️ Пример использования
from datetime import datetime
from elasticsearch_dsl import Document, Date, Integer, Keyword, Text
from elasticsearch_dsl.connections import connections
# Определение класса для документа
class Article(Document):
title = Text(analyzer='snowball', fields={'raw': Keyword()})
body = Text(analyzer='snowball')
tags = Keyword()
published_from = Date()
lines = Integer()
class Index:
name = 'blog'
settings = {
"number_of_shards": 2,
}
def save(self, ** kwargs):
self.lines = len(self.body.split())
return super(Article, self).save(** kwargs)
# Создание соединения
connections.create_connection(hosts=['localhost'])
# Создание индекса
Article.init()
# Создание и сохранение статьи
article = Article(meta={'id': 42}, title='Hello world!', tags=['test'])
article.body = ''' looong text '''
article.published_from = datetime.now()
article.save()
# Применение поиска
s = Article.search().query('match', title='Hello')
response = s.execute()
for hit in response:
print(hit.meta.score, hit.title)
В этом примере мы создаем класс Article для представления документа, который мы хотим сохранить в Elasticsearch. Затем мы создаем новый документ, сохраняем его и выполняем поиск по заголовку.
✔️ Установка
pip install elasticsearch-dsl
⛓ Ссылка на документацию
@programistica // #Library5 765
5 765
💻 Вопрос из собеседования: В чем разница между func и func()?
Вопрос должен проверить ваше понимание, что все функции в Python также являются объектами:
def func():
print('Im a function')
func
#=> function __main__.func>
func()
#=> Im a function
func — это представляющий функцию объект, который можно назначить переменной или передать другой функции. Функция func() с круглыми скобками вызывает функцию и возвращает результат.
Надеюсь это поможет вам пройти собеседование на желаемую вами работу, удачи🔥🔥🔥@programistica // #jobs
5 765
🖼️ Библиотека Python: SymPy
SymPy - это библиотека Python для символьных математических вычислений. Она поддерживает символы, алгебраические выражения, дифференциальное и интегральное исчисление, решение уравнений и другие возможности символьной математики.
⚙️ Пример использования
from sympy import symbols, Eq, solve
# Определение символов
x = symbols('x')
# Определение уравнения
equation = Eq(x**2 - 5*x + 6, 0)
# Решение уравнения
solution = solve(equation, x)
print('Решения уравнения: ', solution)
В этом примере мы создаем символ x, определяем уравнение x**2 - 5*x + 6 = 0 и используем функцию solve для нахождения решений этого уравнения. Результат будет выведен на экран.
✔️ Установка
pip install sympy
⛓ Ссылка на документацию
@programistica // #Library5 765
⚙️ Работа с файлами с использованием менеджера контекста
Работа с файлами в Python часто включает в себя открытие файла, чтение из него или запись в него и, наконец, закрытие файла. Одним из наиболее эффективных и безопасных способов управления файлами является использование менеджера контекста с ключевым словом
with. Этот подход не только упрощает код, но и автоматически заботится о закрытии файла после завершения работы, даже если в процессе выполнения возникли исключения.
Принцип работы
Менеджер контекста в Python реализован через протокол контекстного менеджера, который определяется методами __enter__ и __exit__. Когда выполнение кода входит в блок with, вызывается метод __enter__ объекта. После завершения выполнения кода в блоке with (или при возникновении исключения) автоматически вызывается метод __exit__, который и заботится о корректном закрытии файла или освобождении ресурсов.
Примеры использования
⏺Запись в файл
with open('example.txt', 'w') as file:
file.write('Привет, Python!')
В этом примере файл example.txt открывается для записи ('w'). Всё, что записывается в файл внутри блока with, будет автоматически сохранено, а файл закрыт после выхода из блока.
⏺Чтение из файла
with open('example.txt', 'r') as file:
content = file.read()
print(content)
Здесь файл example.txt открывается для чтения ('r'). Содержимое файла считывается и выводится на экран. После выхода из блока with файл автоматически закрывается, что предотвращает утечку ресурсов или возможные ошибки при попытке доступа к уже закрытому файлу.
Преимущества использования менеджера контекста
⏺Автоматическое закрытие файла: Менеджер контекста автоматически закрывает файл по завершении работы с ним, что уменьшает риск ошибок и утечек ресурсов.
⏺Упрощение кода: Использование with делает код более читаемым и упрощает управление ресурсами.
⏺Обработка исключений: Менеджер контекста обеспечивает корректное закрытие файла даже в случае возникновения исключений внутри блока with.
Использование менеджера контекста при работе с файлами в Python является лучшей практикой, обеспечивающей более безопасный и удобный способ управления файловыми ресурсами.5 765
На одних курсах далеко не уедешь!
🐱 Этот канал — настоящая имба для айтишника:
• Как обойти блокировку Docker
• Чем заменить Slack, пока он не заблочил твой акк
• Лучший ИИ ассистент для написания кода
Прокачай свои скиллы вместе с Git Разработчика
5 765
👀 Книга: Программируем с Minecraft
⏺Телепортация с помощью переменных
⏺Математик а, моментальное строительство и суперпрыжки
⏺Общаемся с помощью строк
⏺«Истина» и «ложь» булевых значений
⏺Конструкция if, душ и потайная дверь
И многое другое
@programistica // #doc
5 765
⚙️ getattr(), setattr(), и hasattr() в python
В Python,
getattr(), setattr(), и hasattr() — это встроенные функции, которые предоставляют динамический доступ к атрибутам объекта. Эти функции делают код более гибким и позволяют работать с атрибутами объектов, имена которых могут быть неизвестны на момент написания кода.
getattr()
Функция getattr() возвращает значение атрибута объекта. Если атрибут не существует, можно определить возвращаемое значение по умолчанию.
Синтаксис:
getattr(object, 'attribute', default=None)
⏺object — объект, атрибут которого требуется получить.
⏺'attribute' — строка, имя атрибута.
⏺default — значение, которое вернется, если атрибут не найден (необязательный параметр).
setattr()
Функция setattr() устанавливает значение атрибута объекта. Если атрибут не существует, он будет создан.
Синтаксис:
setattr(object, 'attribute', value)
⏺object — объект, атрибут которого требуется установить или создать.
⏺attribute' — строка, имя атрибута.
⏺value — значение, которое нужно установить для атрибута.
hasattr()
Функция hasattr() проверяет, существует ли атрибут у объекта.
Синтаксис:
hasattr(object, 'attribute')
⏺object — объект для проверки наличия атрибута.
⏺'attribute' — строка, имя атрибута для проверки.
Эти функции очень полезны при работе с атрибутами объектов, особенно когда вы работаете с динамическими или неизвестными заранее данными. Они обеспечивают дополнительную гибкость и мощь при проектировании архитектуры программ на Python.
@programistica // #article5 765
💻 Вопрос из собеседования: В чем разница между is и ==?
Если кратко:
is проверяет идентичность, а == проверяет равенство.
Рассмотрим пример. Создайте несколько списков и назначьте им имена. Обратите внимание, что ниже b указывает на тот же объект, что и a:
a = [1,2,3]
b = a
c = [1,2,3]
Проверьте равенство и обратите внимание, что все объекты равны:
print(a == b)
print(a == c)
#=> True
#=> True
Но являются ли все они идентичными? Нет:
print(a is b)
print(a is c)
#=> True
#=> False
Можем проверить это, распечатав их идентификаторы объектов:
print(id(a))
print(id(b))
print(id(c))
#=> 4369567560
#=> 4369567560
#=> 4369567624
Идентификатор c отличается от идентификатора a и b.
Надеюсь это поможет вам пройти собеседование на желаемую вами работу, удачи🔥🔥🔥@programistica // #jobs
5 765
Эффективный метод быстрого освоения ChatGPT.
Обучение нейронной сети и создание правильных промптов – это длительный процесс, который требует значительного времени.
Здесь вы узнаете, как использовать ChatGPT в профессиональных целях, создавать нейросутрудников на заказ и зарабатывать на ИИ.
Вы создадите своего нейросотрудника с нуля, без опыта программирования.
Бесплатный доступ предоставляется сразу после регистрации.
Реклама. ООО "ТЕРРА ЭЙАЙ". ИНН 9728019395. erid: LjN8K4fWo
5 765
👀 Книга: Python для программирования криптовалют
⏺Конечные поля
⏺Эллиптические кривые
⏺Криптография по эллиптическим кривым
⏺Сериализация
⏺Транзакции
⏺Язык Script
И многое другое
@programistica // #doc
5 765
🖼️ Библиотека Python: Loguru
Loguru — это библиотека для логирования в Python, которая предлагает упрощенный способ захвата и управления логами. Она обеспечивает автоматическое определение контекста вызова, поддерживает цветной вывод и позволяет легко настраивать форматирование, фильтрацию и перенаправление логов без необходимости настройки обработчиков.
⚙️ Пример использования
from loguru import logger
# Конфигурация логирования: установка уровня логирования и формата вывода сообщений
logger.add("debug.log", format="{time} {level} {message}", level="DEBUG")
# Примеры логирования на разных уровнях
logger.debug("Это сообщение отладки")
logger.info("Это информационное сообщение")
logger.warning("Это предупреждение")
logger.error("Это сообщение об ошибке")
logger.critical("Это критическое сообщение")
try:
1 / 0
except ZeroDivisionError:
# Автоматический захват и логирование исключений
logger.exception("Произошла ошибка:")
# Логирование с использованием контекста
with logger.contextualize(user_id=123456):
logger.info("Это сообщение содержит дополнительный контекст")
# Логирование в файл
logger.add("file.log", rotation="100 KB")
logger.info("Это сообщение будет сохранено в файле")
В этом примере демонстрируются основные функции Loguru:
⏺Конфигурация логгера для записи сообщений в файл debug.log с определенным форматом.
⏺Логирование сообщений разного уровня важности.
⏺Автоматический захват исключений и логирование их с помощью logger.exception.
⏺Использование контекста для добавления дополнительной информации к логам.
⏺Ведение логов в файл с автоматической ротацией по достижению размера файла в 100 KB.
Loguru делает процесс логирования в Python более удобным и гибким, предоставляя простой интерфейс и мощные возможности для управления логами.
✔️ Установка
pip install loguru
⛓ Ссылка на документацию
@programistica // #Library5 765
2.
Наследование
Наследование позволяет новому классу перенимать атрибуты и методы уже существующего класса. Это облегчает повторное использование кода.
# Определение базового класса Vehicle
class Vehicle:
# Конструктор класса Vehicle, принимающий имя и скорость транспортного средства
def __init__(self, name, speed):
self.name = name # Инициализация атрибута name
self.speed = speed # Инициализация атрибута speed
# Метод для получения скорости транспортного средства
def get_speed(self):
return self.speed # Возвращает скорость транспортного средства
# Определение класса Car, который наследует класс Vehicle
class Car(Vehicle):
# Конструктор класса Car, принимающий имя, скорость и пробег автомобиля
def __init__(self, name, speed, mileage):
super().__init__(name, speed) # Вызов конструктора базового класса Vehicle для инициализации name и speed
self.mileage = mileage # Инициализация атрибута mileage, уникального для класса Car
# Метод для получения пробега автомобиля
def get_mileage(self):
return self.mileage # Возвращает пробег автомобиля
# Создание экземпляра класса Car с именем "Toyota", скоростью 150 и пробегом 20000
car = Car("Toyota", 150, 20000)
# Вывод скорости и пробега автомобиля, используя методы get_speed и get_mileage
print(car.get_speed(), car.get_mileage())
Этот код иллюстрирует принцип наследования в ООП, где класс Car расширяет функциональность базового класса Vehicle, добавляя к нему новый атрибут mileage и метод get_mileage() для его получения. Класс Car наследует атрибуты и методы класса Vehicle, что позволяет использовать их в экземплярах класса Car. Таким образом, Car является специализированным типом Vehicle, обладающим всеми его свойствами, а также дополнительным свойством — пробегом.
3. Полиморфизм
Полиморфизм — это способность одного и того же кода работать с объектами разных типов.
# Определение класса Dog
class Dog:
# Метод speak, специфичный для класса Dog
def speak(self):
return "Woof!" # Возвращает звук, который издает собака
# Определение класса Cat
class Cat:
# Метод speak, специфичный для класса Cat
def speak(self):
return "Meow!" # Возвращает звук, который издает кошка
# Функция, демонстрирующая полиморфизм
def get_pet_sound(pet):
# Выводит звук, который издает животное
# Аргумент pet может быть объектом любого класса, имеющего метод speak
print(pet.speak())
# Создание экземпляра класса Dog и вызов функции get_pet_sound
get_pet_sound(Dog()) # Выводит "Woof!"
# Создание экземпляра класса Cat и вызов функции get_pet_sound
get_pet_sound(Cat()) # Выводит "Meow!"
В этом примере функция get_pet_sound() принимает объект pet в качестве аргумента и вызывает его метод speak(). Благодаря полиморфизму, функция может работать с объектами различных классов, если у этих классов есть метод speak(). Это позволяет писать более универсальный и гибкий код, который может работать с объектами разных типов, не зная их конкретной реализации.