Программистика
کانال بسته
Лучший канал про python Ссылка для друга: https://t.me/+Ai6ughKtf5g2ZmFi Купить рекламу: https://telega.in/c/+Ai6ughKtf5g2ZmFi Админ: @JeyRahol По рекламе: @ReivuManager
نمایش بیشتر5 596
مشترکین
-224 ساعت
+87 روز
-8530 روز
آرشیو پست ها
5 598
😎 PyLinux - канал для тех, кто изучает Python и хочет начать разбираться в Linux!
➡️ Почему не стоит упустить:
- удобные инструменты Linux
- библиотеки и полезные материалы по Python
- bash скрипты и гайды
- а также, многое другое!
🔥 Заходи прямо сейчас, чтобы не потерять - PyLinux!
5 598
🖼️ Библиотека Python: Altair
Altair — это декларативная библиотека для создания статистических визуализаций в Python, основанная на спецификации Vega-Lite. Она позволяет легко создавать интерактивные и информативные графики с помощью простого и интуитивно понятного синтаксиса, что делает её идеальной для исследовательского анализа данных.
⚙️ Пример использования
import altair as alt
from vega_datasets import data
# Загрузка данных о машинах
cars = data.cars()
# Создание графика рассеяния, показывающего зависимость между весом автомобиля и его расходом топлива
scatter_plot = alt.Chart(cars).mark_circle(size=60).encode(
x='Weight_in_lbs',
y='Miles_per_Gallon',
color='Origin',
tooltip=['Name', 'Origin', 'Horsepower', 'Miles_per_Gallon']
).interactive().properties(
title='Зависимость расхода топлива от веса автомобиля'
)
# Отображение графика
scatter_plot.display()
В этом примере создается интерактивный график рассеяния, где по оси X отложен вес автомобиля (Weight_in_lbs), а по оси Y — расход топлива (Miles_per_Gallon). Точки на графике окрашены в соответствии с происхождением автомобиля (Origin). При наведении курсора на точку, всплывающая подсказка покажет название автомобиля (Name), его происхождение (Origin), мощность (Horsepower) и расход топлива (Miles_per_Gallon)./
✔️ Установка
pip install altair vega_datasets
⛓ Ссылка на документацию
@programistica // #Library5 598
💻 Происхождение термина "баг"
Что-то захотелось мне немного окунутся в историю, так что давайте рассмотрим достаточно интересную тему: Происхождение термина "баг".
Термин "баг" в контексте программирования имеет интересное и несколько анекдотичное происхождение. В 1947 году, когда компьютеры были огромными машинами, занимающими целые комнаты, инженеры столкнулись с необычной проблемой. В одном из первых компьютеров, Марке II, произошла неисправность, и после тщательного изучения выяснилось, что в реле компьютера застряла моль. Этот случай был зафиксирован в журнале инженеров, и рядом с записью была приклеена сама моль с пометкой "первый реальный случай обнаружения бага".
Этот инцидент стал известным благодаря Грейс Хоппер, одной из первых женщин-программистов, которая работала над Марком II. Она и ее команда использовали термин "debugging" (отладка) для описания процесса удаления моли из компьютера и восстановления его работы.
Хотя этот случай с молью стал популярным и часто упоминается как первый "баг", термин "баг" использовался в инженерии и ранее для обозначения механических неисправностей. Например, Томас Эдисон использовал этот термин в своих записях еще в 1878 году для описания проблем с телеграфными аппаратами.
С тех пор термин "баг" стал широко использоваться в программировании и компьютерной инженерии для обозначения ошибок или неисправностей в программном обеспечении или аппаратуре. Процесс обнаружения и исправления таких ошибок называется "отладка" (debugging), что также произошло от этого исторического случая.
@programistica // #article
5 598
👀 Книга: Создание видеоигр с помощью PyGame
⏺Настройка Python и Pygame
⏺Крестики-нолики в PyGame
⏺Использование классов в Pygame
⏺Рефакторинг игровой логики
⏺Пожиратель камней
⏺Космическое вторжение в PyGame
И многое другое
@programistica // #doc
5 598
5 598
💻 Вопрос из собеседования: Как округлить число до трех десятичных знаков?
Используйте функцию
round(value, decimal_places):
a = 5.12345
round(a,3)
#=> 5.123
Надеюсь это поможет вам пройти собеседование на желаемую вами работу, удачи🔥🔥🔥@programistica // #jobs
5 598
🖼️ Библиотека Python: PyOpenGL
PyOpenGL представляет собой кроссплатформенный интерфейс Python для OpenGL, который позволяет разработчикам создавать высокопроизводительные графические и визуализационные приложения с использованием стандартного API OpenGL. Эта библиотека обеспечивает прямой доступ к графическим функциям GPU, делая её идеальным выбором для разработки трехмерной графики, игр и научных визуализаций в Python.
⚙️ Пример использования
import glfw
from OpenGL.GL import *
import numpy as np
# Инициализация GLFW
if not glfw.init():
raise Exception("GLFW не может быть инициализирован")
# Создание окна
window = glfw.create_window(640, 480, "PyOpenGL Demo", None, None)
if not window:
glfw.terminate()
raise Exception("Окно GLFW не может быть создано")
glfw.set_window_pos(window, 400, 200)
# Установка контекста
glfw.make_context_current(window)
# Определение вершин треугольника
vertices = np.array([-0.5, -0.5, 0.0,
0.5, -0.5, 0.0,
0.0, 0.5, 0.0], dtype=np.float32)
# Определение цветов вершин
colors = np.array([1.0, 0.0, 0.0,
0.0, 1.0, 0.0,
0.0, 0.0, 1.0], dtype=np.float32)
# Цикл отрисовки
while not glfw.window_should_close(window):
glfw.poll_events()
glClear(GL_COLOR_BUFFER_BIT)
# Включение массива вершин
glEnableClientState(GL_VERTEX_ARRAY)
glVertexPointer(3, GL_FLOAT, 0, vertices)
# Включение массива цветов
glEnableClientState(GL_COLOR_ARRAY)
glColorPointer(3, GL_FLOAT, 0, colors)
# Отрисовка треугольника
glDrawArrays(GL_TRIANGLES, 0, 3)
# Отключение массивов вершин и цветов
glDisableClientState(GL_VERTEX_ARRAY)
glDisableClientState(GL_COLOR_ARRAY)
glfw.swap_buffers(window)
# Завершение работы
glfw.terminate()
Этот код демонстрирует базовые принципы работы с PyOpenGL: инициализацию окна с помощью GLFW, установку контекста, определение вершин и цветов для треугольника, а также его отрисовку. Убедитесь, что у вас установлены все необходимые зависимости, чтобы код успешно выполнялся.
✔️ Установка
pip install PyOpenGL PyOpenGL_accelerate
⛓ Ссылка на документацию
@programistica // #Library5 598
💻 Вопрос из собеседования: Как объединить два массива?
Помните, что массивы — это не списки. Это библиотека 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 598
👀 Книга: Python. Непрерывная интеграция и доставка
⏺Автоматическое тестирование
⏺Модульное тестирование в Python
⏺Непрерывная интеграция с Jenkins
⏺Непрерывная доставка
⏺Сборка пакетов
⏺Распространение пакетов Debian
⏺Развертывание пакетов
И многое другое
@programistica // #doc
5 598
Попробуйте себя в роли специалиста по кибербезопасности на мини-курсе Skillbox. За 5 дней вы познакомитесь с профессией и научитесь защищать веб-серверы. Примерите роль хакера — перехватите пароль и подделаете письмо. А потом обезвредите ПО и поймёте, хотите ли развиваться дальше в этом направлении.
Подробнее по ссылке: https://epic.st/XQd7QI?erid=2VtzqvG4pRW
В программе мини-курса:
— Основы профессии и прослушка трафика.
— Как создавать и различать поддельные письма.
— Как взломать сервер и обезвредить угрозу взлома.
— Какие бывают методы защиты серверов.
Чтобы выполнять практические задания, вам нужно установить VirtualBox — систему для запуска учебных виртуальных машин. Ссылку на установку пришлём после регистрации на мини-курс.
На финальном вебинаре вы обсудите со спикером практические задания и сможете задать вопросы, возникшие в ходе курса.
Спикер — Сергей Кручинин, проверяющий эксперт в Skillbox. Руководил проектами в Mail.ru Group, работал в WEBINAR.RU, ГК Astra Linux, МИФИ, МГТУ им. Н. Э. Баумана.
Всех участников ждут бонусы: 5 полезных материалов о приёмах взлома, методах защиты и тестирования серверов, персональная карьерная консультация, сертификат на скидку 10 000 рублей и год бесплатного изучения английского языка.
Первый бонус — сразу после регистрации!
Реклама. ЧОУ ДПО «Образовательные технологии «Скилбокс (Коробка навыков)», ИНН: 9704088880
5 598
⚙️ Работа с файлами с использованием менеджера контекста
Работа с файлами в 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 598
💻 Вопрос из собеседования: В чем разница между глубокой и мелкой копиями?
Обсудим это в контексте изменяемого объекта — списка. Для неизменяемых объектов глубокое и мелкое (поверхностное) копирование обычно не отличаются.
Рассмотрим три сценария.
⏺Поставьте ссылку на исходный объект. Она отсылает новое имя
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 598
👀 Книга: Безопасность веб-приложений на Python
⏺Хеширование
⏺Симметричное шифрование
⏺Асимметричное шифрование
⏺Сеанс HTTP
⏺Противостояние атакам
И многое другое
@programistica // #doc
5 598
🖼️ Библиотека 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 598
5 598
💻 Вопрос из собеседования: В чем разница между func и func()?
Вопрос должен проверить ваше понимание, что все функции в Python также являются объектами:
def func():
print('Im a function')
func
#=> function __main__.func>
func()
#=> Im a function
func — это представляющий функцию объект, который можно назначить переменной или передать другой функции. Функция func() с круглыми скобками вызывает функцию и возвращает результат.
Надеюсь это поможет вам пройти собеседование на желаемую вами работу, удачи🔥🔥🔥@programistica // #jobs
5 598
🖼️ Библиотека 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 598
⚙️ Работа с файлами с использованием менеджера контекста
Работа с файлами в 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 598
На одних курсах далеко не уедешь!
🐱 Этот канал — настоящая имба для айтишника:
• Как обойти блокировку Docker
• Чем заменить Slack, пока он не заблочил твой акк
• Лучший ИИ ассистент для написания кода
Прокачай свои скиллы вместе с Git Разработчика
5 598
👀 Книга: Программируем с Minecraft
⏺Телепортация с помощью переменных
⏺Математик а, моментальное строительство и суперпрыжки
⏺Общаемся с помощью строк
⏺«Истина» и «ложь» булевых значений
⏺Конструкция if, душ и потайная дверь
И многое другое
@programistica // #doc
اکنون در دسترس! پژوهش تلگرام ۲۰۲۵ — مهمترین بینشهای سال 
