Станьте веб-разработчиком на Python! Работайте с бэкендом веб-приложений любых масштабов – от прототипов до интернет-магазинов, порталов и сервисов.
Веб-разработчиков на Python активно ищет современный бизнес: стартапы, небольшие и средние частные компании.
👉🏻На курсе вы освоите HTML и CSS, выучите Python – язык с консистентным синтаксисом, единообразной стандартной библиотекой, фреймворками, в том числе Django. Прокачаетесь в алгоритмах, архитектуре, познакомитесь с базой данных SQL и сопутствующими инструментами: командной строкой, Poetry, Git. Напишите 4 рабочих проекта – крутое портфолио!
Мы не просто дадим знания и навыки, а порекомендуем вас работодателям, пригласим на гарантированные собеседования, дадим возможность пройти стажировки в авторитетных компаниях.Заходите и пробуйте наш формат!
Веб-разработчиков на Python активно ищет современный бизнес: стартапы, небольшие и средние частные компании.
👉🏻На курсе вы освоите HTML и CSS, выучите Python – язык с консистентным синтаксисом, единообразной стандартной библиотекой, фреймворками, в том числе Django. Прокачаетесь в алгоритмах, архитектуре, познакомитесь с базой данных SQL и сопутствующими инструментами: командной строкой, Poetry, Git. Напишите 4 рабочих проекта – крутое портфолио!
Мы не просто дадим знания и навыки, а порекомендуем вас работодателям, пригласим на гарантированные собеседования, дадим возможность пройти стажировки в авторитетных компаниях.Заходите и пробуйте наш формат!
Как удалить каждый второй элемент списка в python?
Вы можете использовать индексирование [::2] (2 означает шаг) для удаления каждого второго элемента.
Подписывайтесь на канал 👉@pythonofff
Вы можете использовать индексирование [::2] (2 означает шаг) для удаления каждого второго элемента.
array = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(array[::2])
# Вывод : [1, 3, 5, 7, 9]
Подписывайтесь на канал 👉@pythonofff
Как в Python используется оператор +
Прежде чем приступить к методам
Допустим, у нас есть два списка, list1 и list2, которые мы хотим объединить (то есть склеить вместе два целых списка).
Если вы внимательно прочтете приведенный выше код, вы заметите следующие вещи:
• list1 + list2 не добавляет элементы из list2 в list1.
• Вместо этого создается новый список, содержащий элементы из list1 и list2.
• В результате сами списки list1 и list2 остаются в первозданном виде.
Есть методы с использованием append() и extend().
Подписывайтесь на канал 👉@pythonofff
Прежде чем приступить к методам
append()
и extend()
, давайте посмотрим, как происходит конкатенация (объединение) списков при помощи оператора +.Допустим, у нас есть два списка, list1 и list2, которые мы хотим объединить (то есть склеить вместе два целых списка).
Если вы внимательно прочтете приведенный выше код, вы заметите следующие вещи:
• list1 + list2 не добавляет элементы из list2 в list1.
• Вместо этого создается новый список, содержащий элементы из list1 и list2.
• В результате сами списки list1 и list2 остаются в первозданном виде.
Есть методы с использованием append() и extend().
Подписывайтесь на канал 👉@pythonofff
Блок else в циклах for и while
Цикл while используется для выполнения условия до тех пор, пока оно не будет оценено как истинное.
Цикл for используется для повторения определенных строк кода в программе. Предположим, вы хотите напечатать числа до 10, вы можете сделать это, набрав 10 операторов печати или используя цикл
В Python циклы
Рассмотрим это на примере функции, ищущей иголку (needle) в стоге сена (haystack).
Подписывайтесь на канал 👉@pythonofff
Цикл while используется для выполнения условия до тех пор, пока оно не будет оценено как истинное.
Цикл for используется для повторения определенных строк кода в программе. Предположим, вы хотите напечатать числа до 10, вы можете сделать это, набрав 10 операторов печати или используя цикл
for
. Цикл for
повторяет часть программы на основе последовательности.В Python циклы
for
и while
могут содержать блок else
, который выполнится, только если цикл завершится без применения break
.Рассмотрим это на примере функции, ищущей иголку (needle) в стоге сена (haystack).
Подписывайтесь на канал 👉@pythonofff
Как импортировать класс из другого файла в python?
Вы можете использовать from "<Название_Файла>" import "<Название_Класса>"
Файл "math_function.py"
Подписывайтесь на канал 👉@pythonofff
Вы можете использовать from "<Название_Файла>" import "<Название_Класса>"
from math_function import Axe
axe = Axe(x = 10, y = 13)
print(axe.summ())
# Вывод : 23Файл "math_function.py"
class Axe:
def __init__(self, x : int, y : int):
self.x = x
self.y = y
def summ(self):
return x + y
Подписывайтесь на канал 👉@pythonofff
Как удалить папку с файлами в Python?
Вы можете использовать
Подписывайтесь на канал 👉@pythonofff
Вы можете использовать
shutil.rmtree()
метод, чтобы удалить директорию со всеми файлами в ней на Python, посмотрите небольшой код ниже:import shutil
path = "/tmp/test_folder"
# Удалить папку и все файлы в ней
shutil.rmtree(path)
Подписывайтесь на канал 👉@pythonofff
Ускоряем код при помощи векторизации?
Лучшее решение — векторизация вычислений. Простыми словами: использование функций, которые поддерживают операцию над векторами.
По сути, самым лучшим способом для ускорения любого цикла - это полный отказ от него. В примере выше для работы с функцией
Вообще,
Подписывайтесь на канал 👉@pythonofff
Лучшее решение — векторизация вычислений. Простыми словами: использование функций, которые поддерживают операцию над векторами.
По сути, самым лучшим способом для ускорения любого цикла - это полный отказ от него. В примере выше для работы с функцией
my_func
мы легко могли бы обойтись вызовом ее в цикле для каждого элемента списка, но еще проще будет использовать vectorize
.Вообще,
vectorize
преображает функцию таким образом, что она целиком принимает весь вектор, а не ее отдельные элементы. Только знайте, что такой прием не всегда ускорит ее в значительной степени.Подписывайтесь на канал 👉@pythonofff
Как удалить строку из файла в Python?
Подписывайтесь на канал 👉@pythonofff
filename = "test.txt"
delete_string = "строка 2"
lines = []
with open(filename, 'r') as file:
for line in file:
if line.strip() != delete_string:
lines.append(line)
with open(filename, "w") as file:
file.writelines(lines)
Подписывайтесь на канал 👉@pythonofff
Простой веб-фреймворк
На сегодняшний день упрощенным вариантом веб-фреймворка WSGI для Python, является Bootle.
Это своего рода файловый модуль в единственном числе не имеющий сторонних библиотек, кроме стандартной Python.
Модуль Bootle вполне реализует себя в работах как с малыми, так и большими проектами, хотя его функционал состоит не из самых обширных возможностей: обработка форм, routing, POST-routing, сервер и cookies.
Для более точного рассмотрения результата, достаточно запустить данный модуль, прописать пять строк кода и перейти по адресной строке в браузере: localhost:5000/hello/world
Подписывайтесь на канал 👉@pythonofff
На сегодняшний день упрощенным вариантом веб-фреймворка WSGI для Python, является Bootle.
Это своего рода файловый модуль в единственном числе не имеющий сторонних библиотек, кроме стандартной Python.
Модуль Bootle вполне реализует себя в работах как с малыми, так и большими проектами, хотя его функционал состоит не из самых обширных возможностей: обработка форм, routing, POST-routing, сервер и cookies.
Для более точного рассмотрения результата, достаточно запустить данный модуль, прописать пять строк кода и перейти по адресной строке в браузере: localhost:5000/hello/world
Подписывайтесь на канал 👉@pythonofff
Функции sleep() и time()
Чтобы понять смысл функции
Сперва выводится первая строка, затем идёт функция
Рассмотрим пример использования
В результате интервал между двумя моментами времени составил две секунды.
Подписывайтесь на канал 👉@pythonofff
Чтобы понять смысл функции
sleep()
, разберём простой пример. Три строки выводятся в определённый промежуток времени – задержку обеспечивает sleep.Сперва выводится первая строка, затем идёт функция
sleep()
, которая задерживает вывод на 2 секунды. Точно так же для следующего print мы используем sleep на 5 секунд.Рассмотрим пример использования
sleep()
для создания промежутка времени. Мы используем функцию time()
, чтобы узнать текущее время, и localtime()
, чтобы получить текущие дату и время в конкретной местности. Кроме того, есть функция strftime()
(«string from time»), которая возвращает время в виде строки в указанном формате. В результате интервал между двумя моментами времени составил две секунды.
Подписывайтесь на канал 👉@pythonofff
Встроенная функция float в Python
Если строка, которую надо конвертировать в число, не является целым числом, здесь поможет метод
Float также можно использовать для преобразования целых чисел в числа с плавающей запятой.
В Python 2 такое преобразование необходимо, но в Python 3 целочисленное деление больше не является чем-то особенным (если вы специально не используете оператор «
Подписывайтесь на канал 👉@pythonofff
Если строка, которую надо конвертировать в число, не является целым числом, здесь поможет метод
float
.Float также можно использовать для преобразования целых чисел в числа с плавающей запятой.
В Python 2 такое преобразование необходимо, но в Python 3 целочисленное деление больше не является чем-то особенным (если вы специально не используете оператор «
//
»). Поэтому больше не нужно использовать float
для этой цели, теперь float(x)/y
можно легко заменить на x/y
.Подписывайтесь на канал 👉@pythonofff
Как прочитать определенную строку в файле на Python?
Вы можете открыть файл и читать его построчно до тех пор пока не найдете нужную строку.
Подписывайтесь на канал 👉@pythonofff
Вы можете открыть файл и читать его построчно до тех пор пока не найдете нужную строку.
lineNeeded = 5
i = 1
f = open('test.txt')
for line in f:
if i == lineNeeded:
print(line)
break
i = i + 1
Подписывайтесь на канал 👉@pythonofff
Как не просто выучить Python, а разобраться в алгоритмах и структурах данных, автоматических тестах, освоить Django и всё необходимое для качественной разработки в команде?
Например, освоить профессию на Хекслете. Курс невозможно просто «отсидеть» или «прослушать», на нём дают только самое необходимое для условий реального продакшена — доступ к Open Source проектам, базе тестовых задач для подготовки к собеседованиям, кейсы для портфолио.
Так что многие студенты получают оффер ещё во время обучения. Работодатели указывают курсы Хекслета как преимущество при найме.
Узнайте подробнее о профессии «Python-разработчик» и оцените формат школы!
Например, освоить профессию на Хекслете. Курс невозможно просто «отсидеть» или «прослушать», на нём дают только самое необходимое для условий реального продакшена — доступ к Open Source проектам, базе тестовых задач для подготовки к собеседованиям, кейсы для портфолио.
Так что многие студенты получают оффер ещё во время обучения. Работодатели указывают курсы Хекслета как преимущество при найме.
Узнайте подробнее о профессии «Python-разработчик» и оцените формат школы!
Проверка прав доступа через декораторы
Распространенным шаблоном при работе с веб-приложениями является проверка есть ли у клиента разрешение на выполнение запрашиваемого действия. Проверки включают получение значения из заголовка HTTP запроса (токен) или из cookie браузера, для идентификации клиента. Затем, когда клиент распознан, используется специальный метод для определения допустимых прав доступа у данного клиента.
Поскольку фактическая проверка разрешений зависит от приложения, здесь будет показан общий пример, в котором просто дает разрешение на выполнение запроса на основе значения из HTTP заголовка.
Подписывайтесь на канал 👉@pythonofff
Распространенным шаблоном при работе с веб-приложениями является проверка есть ли у клиента разрешение на выполнение запрашиваемого действия. Проверки включают получение значения из заголовка HTTP запроса (токен) или из cookie браузера, для идентификации клиента. Затем, когда клиент распознан, используется специальный метод для определения допустимых прав доступа у данного клиента.
Поскольку фактическая проверка разрешений зависит от приложения, здесь будет показан общий пример, в котором просто дает разрешение на выполнение запроса на основе значения из HTTP заголовка.
Подписывайтесь на канал 👉@pythonofff
Фильтры NEAREST, BILINEAR и BICUBIC в Pillow
Параметр
• Image.NEAREST (ближайший сосед / по умолчанию);
• Image.BILINEAR;
• Image.BICUBIC.
С помощью фильтра Image.BICUBIC детали изображения станут более четким, чем в случае использования фильтра по умолчанию
Небольшие различия есть, но у данной картинки они не очень видны. Но, например фильтр
Подписывайтесь на канал 👉@pythonofff
Параметр
resample
можно использовать для указания определенного фильтра, который будет использоваться при поворачивании изображения.• Image.NEAREST (ближайший сосед / по умолчанию);
• Image.BILINEAR;
• Image.BICUBIC.
С помощью фильтра Image.BICUBIC детали изображения станут более четким, чем в случае использования фильтра по умолчанию
Image.NEAREST
.Небольшие различия есть, но у данной картинки они не очень видны. Но, например фильтр
Image.BILINEAR
сделал картинку более гладкой.Подписывайтесь на канал 👉@pythonofff
Как удалить элемент массива в Python?
Вы можете использовать .remove() метод, чтобы удалить нужный элемент из массива на Python
Подписывайтесь на канал 👉@pythonofff
Вы можете использовать .remove() метод, чтобы удалить нужный элемент из массива на Python
arr = ["тест", "тест 1", "тест 2"]
arr.remove("тест 2")
# Вывод: ['тест', 'тест 1']
print(arr)
Подписывайтесь на канал 👉@pythonofff
Проверка данных при помощи декораторов
Еще один полезный метод, который может быть реализован с помощью декораторов, заключается в проверке данных до запуска декорированной функции. Очень распространенный этому пример в веб-приложении — это аутентификация пользователя. Если задача проверки/аутентификации завершается неудачно, то декорированная функция не вызывается, и вместо нее появляется ошибка.
В данном примере, декоратор
Если нет заголовка токена, или если он есть, но не совпадает, то функция
Обратите внимание, как в примере функции представления
👉@pythonofff
Еще один полезный метод, который может быть реализован с помощью декораторов, заключается в проверке данных до запуска декорированной функции. Очень распространенный этому пример в веб-приложении — это аутентификация пользователя. Если задача проверки/аутентификации завершается неудачно, то декорированная функция не вызывается, и вместо нее появляется ошибка.
В данном примере, декоратор
only_admins
ищет HTTP заголовок X-Auth-Token во входящем запросе и затем проверяет, если он совпадает с секретным токеном администратора, который для простоты мы сделали константой. Если нет заголовка токена, или если он есть, но не совпадает, то функция
abort()
из Flask выполняется для генерации ответа 401 и остановки дальнейших запросов. В противном случае запрос может пройти, вызвав при этом декорированную функцию.Обратите внимание, как в примере функции представления
admin_route(
) используются декораторы app.route
и only_admins
. Это называется цепью декораторов.👉@pythonofff
Поиск подстроки в строке
Pегулярное выражение — это строка, задающая шаблон поиска подстрок в тексте. В Python есть встроенный модуль, позволяющий работать с регулярными выражениями, —
Подписывайтесь на канал 👉@pythonofff
Pегулярное выражение — это строка, задающая шаблон поиска подстрок в тексте. В Python есть встроенный модуль, позволяющий работать с регулярными выражениями, —
re
, который содержит функцию search
. Она позволит вам найти подстроку в строкеПодписывайтесь на канал 👉@pythonofff
Станьте Python-разработчиком с нуля!
Научим вас писать программы и веб-приложения, даже если вы никогда не программировали.
Обучение на факультете включает в себя:
— актуальную программу обучения;
— интерактивные вебинары и записи занятий;
— диплом и 7 работ в портфолио;
— трудоустройство после обучения закреплено в договоре;
— разные пакеты обучения.
Переходите по ссылке, чтобы узнать подробнее о курсе и программе обучения:
https://clc.to/zMtQNA
А ещё, дарим подарки всем студентам:
— Изучение английского языка с Lingualeo! 3 месяца к Premium подписке.
— Ключ от продуктов JetBrains! Бесплатная подписка.
— Защитное решение «Лаборатории Касперского»! Пробная версия на 3 месяца.
Научим вас писать программы и веб-приложения, даже если вы никогда не программировали.
Обучение на факультете включает в себя:
— актуальную программу обучения;
— интерактивные вебинары и записи занятий;
— диплом и 7 работ в портфолио;
— трудоустройство после обучения закреплено в договоре;
— разные пакеты обучения.
Переходите по ссылке, чтобы узнать подробнее о курсе и программе обучения:
https://clc.to/zMtQNA
А ещё, дарим подарки всем студентам:
— Изучение английского языка с Lingualeo! 3 месяца к Premium подписке.
— Ключ от продуктов JetBrains! Бесплатная подписка.
— Защитное решение «Лаборатории Касперского»! Пробная версия на 3 месяца.
Хранение хеша и соли
Для хранения можно использовать методы
Если вы ограничены только одним местом для хранения, можете добавить соль и пароль вместе и потом сохранить их. Можно будет разделить их во время чтения, когда вам будет известна длина соли и ключа.
Подписывайтесь на канал 👉@pythonofff
Для хранения можно использовать методы
JSON
, SQL
, CSV
и даже простой текстовый файл. Убедитесь, что пароль нигде не сохранен, ведь в этом состоит главная цель — избежать необходимость сохранения действующего пароля в исходном виде.Если вы ограничены только одним местом для хранения, можете добавить соль и пароль вместе и потом сохранить их. Можно будет разделить их во время чтения, когда вам будет известна длина соли и ключа.
Подписывайтесь на канал 👉@pythonofff