Python School
89K subscribers
2.14K photos
5 videos
537 links
Уроки по Python, которые упростят вам жизнь. Без идиотских туториалов.

Наши мемы для программистов: @conhum

Сотрудничество - @alivian

Канал сотрудничает с рекламным сервисом @Tgpodbor_official
Download Telegram
Базы Данных

Хранить данные нужно всем. Обычно при работе программы все хранится в оперативной памяти (ОЗУ), но при перезапуске все стирается. И для запоминания информацию записывают на жесткий диск. Это и есть База Данных.

Самая популярная База Данных - текстовый файл с записанными значениями. И правда очень удобно. Достаточно открыть файл и прочитать, что там лежит, особенно, если мы знаем какая строка сему соответствует.

Еще информацию которая меняется от программы к программе можно записать в отдельный Python файл. Так нам даже не придется его открывать.

#Базы_Данных
Базы Данных (CSV)

Безусловно прошлый способ с данными в txt файле действенный, но им никто не пользуется. Обычно использую более проlвинутые БД с использованием SQL.

Вот только иногда с txt работать намного проще, а возможно и быстрее. В таком случае рекомендуем использовать формат CSV. Хороший пример - таблица из значений температуры по дням (в выходные наблюдение не велось):

Data;Monday;Tuesday;Wednesday;Wednes­day;Friday
1;1.7;2.8;14;16.9;5.0

Еще можно к примеру хранить местоположение объектов, для работы с CSV есть специальный модуль, который так и называется csv. На картинке предоставлен вывод. Сохранение файла делается почти так же, как и у списков. Подробнее в следующем посте.

#Базы_Данных #CSV
Базы Данных

Разберем подробнее библиотеку CSV. Модуль имеет два основных метода reader и writer, для чтения и записи соответственно. Не забывайте указывать кодировку, чаще всего это 'utf8'

В некоторых случаях при открытии файла рекомендуется получить одну строку, без 'n'. Делается это так: open(file, newline='')

При начале работе с csv указываем разделитель delimiter=';' и разделитель текста quotechar='"'

Чтение возвращает итерируемый объект, а записать что-то в файл можно через метод writerow.

#Базы_Данных #CSV
Базы Данных

Задавались вопросом зачем первой строчкой пишем ненужные данные? Можно же просто запомнить, где что. Наша же программа.

Но, во-первых, не забываем про уважение к коллегам, код должен быть максимально понятен. А еще можно получить вместо списка словарь и получать значения по ключу. Делается это методом DictReader для чтения и DictWriter для записи.

Этими методами вы упростите жизнь и себе, и коллегам, которые будут смотреть ваш код.

Чтение DictReader пример на картинке. А вот при записи все происходит точно так же, как и раньше, за исключением того, что применяем метод DictWriter, а затем writer.writeheader() для записи первой заглавной строки. Данные записываем методом writerow, где аргумент - словарь.

#Базы_Данных #CSV
Начал самостоятельно изучать Python? Хотел бы получить советы практикующих специалистов?

С 17 по 19 мая пройдёт бесплатный онлайн-интенсив Skillbox по программированию, где ты получишь полезные знания и советы практикующего специалиста, сооснователя и технического директора Lia с семилетним опытом в разработке на Python Никиты Левашова.

Подробности по ссылке: 👉 https://clck.ru/UnvxG

На занятиях мы расскажем:

🔧 как написать скрипт на Python по подбору паролей;
🔧 как работать с файлами и запросами;
🔧 как реализовать brute-force attack;
🔧 как защититься от такой атаки;
🔧 как написать консольный интерфейс.

🎁 Всех, кто дойдёт до конца и сдаст домашнее задание, ждёт подарок — электронная книга Кей Петерсон и Дэвида Колба «Век живи — век учись» издательства МИФ и подарочный сертификат на 15 000 рублей на любой курс Skillbox!
This media is not supported in your browser
VIEW IN TELEGRAM
Редактор кода VS code

Совсем недавно в посте разобрали PyCharm и VS code. Прошло не так много времени, а последний успел выпустить очень интересное расширение Inliner. Такого пока что нигде нет.

Суть заключается в том, что можно смотреть и редактировать функции не открывая их в новой вкладке. Очень удобно для редактирования каких-то мелких недочетов. Разумеется, всё сохранятся в нужных файлах.

Расширение пока доступно только для python и js, но разработчики обещают поддержку других языков.
Библиотека Flask

По прошлым урокам понятно, что если писать html код для каждой страницы, то получится максимально неудобно. К счастью, в Flask можно использовать шаблоны. А точнее, наследовать одни страницы от других. Создайте шаблон base.html В нем укажите {% block content %}{% endblock %}. Это место, куда будет вставляться код в дочерних страницах. content можно заменить любым словом.

А на странице, чтобы она унаследовала шаблон, надо написать откуда наследуем:
 extends "base.html" %}

И сам вставочный блок, можно несколько блоков:
 block content %}
Привет
{% endblock %}

Если вы еще не читали про Flask, то самое время начать.
Базы Данных SQL

Работа с текстовыми удобна в маленьких проектах. Но, когда данных становится в разы больше, встает вопрос о более быстром их получении и записи.

Специально для этого существует язык SQL. Мы будем рассматривать SQLite. Надо понимать, что библиотек работающих на нем, как и программ огромное множество, но синтаксис у всех единый. Достаточно выучить просто SQL и вы сможете спокойно перейти на более мощный PostgreSQL.

Так почему SQLite?

Он прост и компактен. Для обучения и для программ с тысячью записями самое то. Но если данных уже на несколько сотен тысяч рекомендую взять что-то по мощнее. Хотя, многие утверждают, что скорость страдает из-за высокой защиты.

На картинке SQL код, который создает таблицу книг.

#Базы_Данных #SQL
Каждый раз лезть в документацию или все-таки за 3 месяца уверенно овладеть всеми ключевыми технологиями Data Engineering? Успейте занять последние места на курсе «Экосистема Hadoop, Spark, Hive». Старт занятий 28 мая.
После обучения вы сможете писать распределенные приложения, работать с потоками данных, обрабатывать большие объемы данных и оптимизировать приложения. Пройдите вступительный тест и присоединяйтесь к группе по спец.цене https://otus.pw/k8gx/
Базы Данных SQL

Пришло время рассказать о SQLite и python. Начнем с того, что библиотека уже установлена, чтобы импортировать:
 sqlite

Далее надо подключится к БД. Если по указанному пути не существует файла, то он будет создан. Используем метод connect(file_name)

Далее создается "курсор" - cursor, который и помогает взаимодействовать с БД.
Метод execute отправляет запросы. С помощью него, к примеру, можно создать таблицу, вставить данные или считать их.

commit - сохраняет изменения.

#Базы_Данных #SQL
Пройдите курс и через 4 месяца вы сможете выдвинуть свою кандидатуру на позицию middle-разработчика!

Во время обучения вы:
получите практику разработки микросервисной архитектуры приложения;
освоите оптимизацию запросов к базам данных;
научитесь использовать фреймворк Django для миграций;
узнаете, как правильно анализировать ошибки;
сможете собирать метрики с сервиса для оценки его работы.

Обучение проходит онлайн в удобное для вас время, достаточно выделять 3–5 часов в неделю. При помощи опытных наставников вы разработаете три самостоятельных проекта:
поисковый движок;
управление аккаунтами;
хранение и мониторинг данных.

Итогом вашей работы на курсе станет большое приложение — аналог IMDb, которое вы напишете вместе с командой. В проекте вы будете использовать микросервисы, которые разработали на курсе. А затем добавите дополнительную возможность авторизации или комментариев на выбор.
Регистрируйся по ссылке: https://clc.am/9MVq3g
Важные методы в Python, которые должен знать каждый питонист. Мы уже рассказывали про некоторые из них. Соберем на этот раз побольше и заодно освежим память.

abs() - возвращает модуль переданного параметра.

all() - функция возвращает значение True, если все элементы в итерируемом объекте - истинны. В противном случае, она возвращает значение False.

any() - функция возвращает True, если какой-либо (любой) элемент в итерируемом объекте является истинным True. В противном случае, any() возвращает значение False.

ascii() - возвращает строку, содержащую печатное представление объекта, и экранирует символы, отличные от ASCII, в строке с помощью экранирования \ x, \ u или \ U.

bin() - функция преобразует целое число в двоичную строку с префиксом 0b.
bool() - возвращает False, если значение объекта 0, в противном случае возвращает True.

eval() - это встроенная функция, используемая в Python. Функция eval анализирует аргумент выражения и оценивает его как выражение python. Проще говоря, функция eval оценивает «String» как выражение Python и возвращает результат.

exec() - встроенная функция похожая на eval, но она полностью выполняет код находящийся внутри. Ее использование может быть не безопасно. К примеру при запуске неизвестного кода. Старайтесь учитывать этот момент.

hash() - возвращает целое являющееся хешем объекта. Хеш используется, в частности, для быстрого сравнения ключей при поиске по словарям.

help() - функция предназначена для вывода документации, подробно разбирали в другом посте.
Flask

Мы уже рассказывали об этом простом фреймворке для создания сайтов. Ранее говорилось, что сильный минус - отсутствие асинхронности. Но недавно (12 мая) вышла новая версия — Flask 2.0

Все новые особенности:
- Прекращена поддержка Python версии 2. Минимальная версия Python 3.6
- Поддержка асинхронных view и других обратных вызовов
- Добавлено изменение к декораторам:
@app.post ("/ login") == @ app.route ("/ login", methods = ["POST"])
- Новая функция Config.from_file для загрузки конфигурации из файла любого формата.
- Команда flask shell включает завершение табуляции, как это делает обычная оболочка python.
- При обслуживании статических файлов браузеры будут кэшировать на основе содержимого, а не на основе 12-часового таймера. Это означает, что изменения статического содержимого, такого как стили CSS, будут немедленно отражены при перезагрузке без необходимости очистки кеша.

Наконец-то.
Серверные приложения на Kotlin — это как на Java, но быстрее и удобнее.

Как использовать этот язык для создания бэкенда?
Получите все необходимые навыки за 5 месяцев на практическом онлайн-курсе «Kotlin Backend Developer» от Otus:
— Изучите возможности и фреймворки Kotlin
— Сможете использовать корутины для асинхронного программирования
— Погрузитесь в тонкости разработки бэкенда
— Освоите востребованные инструменты Cassandra, AWS, ELK-stack и т.д.
— Реализуете 3 своих серверных приложения

После обучения вы сможете разрабатывать очень сложные бэкенд-проекты и овладеете профессиональными навыками, которые необходимы если вы нацелены дорасти до тим лида.

🔥 Успейте занять место со скидкой -20% https://otus.pw/KVjv/
Базы Данных SQL

Осталось несколько важных моментов про sqlite (а вот и предыдущий пост об этом). Например, про обновление данных в таблице и собственно получение.

На языке SQL чтобы обновить таблицу мы используем подобный синтаксис:
 table 
SET name = 'new name'
WHERE id = 1

Разумеется, обновить мы можем несколько значений за один запрос и искать не по id, а, например, по названию. Для запроса на получение указываем SELECT, когда запрос выполнен методом fetchall() для получения всех результатов.

В SQL есть команда похожая на пайтоновский in - LIKE.

Внимание! Часто при получении данных последний элемент может быть пустым, рекомендуем делать проверку.

#Базы_Данных #SQL
У тебя уже есть базовые навыки программирования и ты планируешь дальше развиваться в IT? Попробуй освоить DevOps, познакомься с понятиями Docker, CI и Kubernetes за 3 дня на бесплатном онлайн-интенсиве: 🔜 https://clc.am/dCdyyA.

Твоим наставником будет Владимир Утратенко — engineering manager в «Сравни.ру», соорганизатор сообщества DevOps Moscow и конференции DevOpsDays Moscow.

Ты научишься:
✔️ разбираться в DevOps-инженерии;
✔️ собирать контейнер с приложением;
✔️ запускать его при помощи Docker-compose;
✔️ настраивать непрерывную интеграцию (CI);
✔️ работать с сервисом Kubernetes.

🎁 Всем участникам интенсива подарим электронную книгу Кей Петерсон и Дэвида Колба «Век живи — век учись» издательства МИФ. А все, кто сдаст домашнюю работу, получат сертификат на 15 000 рублей на любой курс Skillbox.

Используй свой шанс! Ждём тебя в прямом эфире 24–26 мая в 19:00 по московскому времени!
Функция sum()

Как бы вы решили задачу получения суммы элементов списка без обхода элементов в цикле?

Это можно сделать с помощью стандартной функции sum().

Cинтакс функции sum():
 start)

Параметры sum():
iterable - итерируемые типы (list ,dict, tuple, и.т.д.)
start - (необязательно) значение этого параметра прибавляется к уже готовой сумме элементов iterable. По умолчанию значение этого параметра 0.

Возвращаемое значение из sum():
sum() возвращает сумму start и элементов всех последующих элементов.
Практика атак и защиты сетей при супер-базовых знаниях в ИБ — это возможно?

Команда практикующих ИБ-спецов создали серию интенсивов для начинающих специалистов, которые хотять получить новые знания и грамотную Roadmap.

Уже 1 июня пройдёт заключительный интенсив Кибербезопастность: Level 0 — участие доступно со скидкой 50%

Интенсив гарантированно поможет разобраться:

— С чего начинается эффективная система информационной безопасности
— Принципы осуществления кибератак и построения защиты
— Как работать с системами обнаружения и предотвращения вторжений (IDS/IPS)

Десятки студентов всего за 3 дня занятий онлайн уже получили готовую базу навыков, сертификаты и бонусы от HackerU.

Бронируйте места в учебной группе уже сейчас со скидкой 50% по ссылке: https://is.gd/FGEprX
Mодуль cmath

Функции в математическом модуле стандартной библиотеки Python обрабатывают числа с плавающей запятой. Для комплексных чисел библиотека Python содержит модуль cmath.

📌Функция polar():
Эта функция возвращает полярное представление декартовой записи комплексного числа. Возвращаемое значение - это кортеж, состоящий из модуля и фазы.

📌Функция phase():
Эта функция возвращает угол против часовой стрелки между осью x и сегментом, соединяющим точку с исходной точкой. Угол представлен в радианах и находится между π и -π.

📌Функция rect():
Эта функция возвращает декартово представление комплексного числа, представленного в полярной форме, то есть по модулю и фазе.

📌Функция sin():
Эта функция возвращает тригонометрическое соотношение синуса фазового угла, представленного в радианах.
Начните свой отпуск правильно!
Пока все остальные отдыхают, у вас есть фора — SF Education сделали цены ниже, чтобы вы могли выгодно инвестировать в себя.

Запишитесь на курсы по финансам, менеджменту и техническим навыкам со скидкой до 65% и за лето измените свою жизнь: освойте профессию, прокачайте новые навыки, получите повышение.

Для подписчиков канала мы собрали специальную подборку программ:
⁃ программа «Бизнес-аналитик»
⁃ курс «Excel Аcademy»
⁃ курс «Data Science academy»

На все курсы действуют:
⁃ сashback 7% + скидка 5% при оплате картой банков-партнеров
⁃ Возврат 15% стоимости курса для 20 лучших студентов
⁃ беспроцентная рассрочка от банков-партнеров
⁃ вычет 13% НДФЛ на обучение

Ловите волну успеха вместе с SF Education → регистрация