Zen of Python
20.2K subscribers
1.2K photos
161 videos
32 files
3.14K links
Полный Дзен Пайтона в одном канале

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels

Сайт: https://tprg.ru/site

Регистрация в перечне РКН: https://tprg.ru/xZOL
Download Telegram
Самые полезные навыки для Python-разработчика в 2023 году

В статье собрано 7 советов, которые помогут вам понять, в каких случаях лучше использовать библиотеки NumPy и NumExpr, как улучшить производительность функции pandas apply() или разобраться в плюсах и минусах Numba. И в целом улучшить свои навыки программирования на Python:

https://towardsdatascience.com/speed-up-your-python-skills-in-2023-e680f4c56f37

#советы
👍6🔥3💩1
Как писать чистый и читаемый код на Python: 3 самых важных принципа

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

Подробнее: https://proglib.io/p/3-principa-napisaniya-chistogo-koda-na-python-2022-12-26

#советы
👍23💩2
Когда использовать .__repr__(), а когда — .__str__() в Python?

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

Именно здесь появляются .__repr__() vs .__str__(). Если вкратце, .__repr__() возвращает подробное описание для разработчика, а .__str__() возвращает более простое описание с информацией для пользователя программы. Но, как всегда, есть нюансы.

И вот отличная статья, в которой доступным языком (хоть и на английском) объясняют, что, когда и где лучше использовать: https://realpython.com/python-repr-vs-str/

#советы
👍11👎3
10 фишек Python, которые поднимут ваш скилл на новый уровень

Работаете с Python и стремитесь улучшить свои навыки? Тогда эта статья для вас!

Мы разберем тонкости Enumeration, лямбда-функций, множественных присвоений, нарезки и других уникальных функций Python. Вы увидите, как словари, «моржовый» оператор :=, F-строки, any() и all(), zip() могут полностью изменить ваш подход к программированию.

https://tproger.ru/articles/tryuki-python-kotorye-podnimut-tvoj-skill-na-novyj-uroven

#советы
5👍3👎1
Выйти из Vim — больше не проблема, причем везде

Оказывается, выход из Vim в разных ситуациях разный! Если вы используете этот редактор на своем локальном устройстве, достаточно набрать Esc + :wq! Последняя команда сохранит внесенные изменения.

Однако при подключении через SHH в той же командной строке Windows или Терминале macOS Escape не сработает, и легко оказаться в ситуации не-могу-выйти. В таком случае клавишу заменяет комбинация Ctrl + [.

Подробнее о том, как обращаться с Vim в этом посте.

#vim #советы
💩11👍2😁1
​​Хотите вырасти из джуна, но не знаете как?

Тимлид Kokoc Group рассказывает, как код выдаёт неопытного Python-разработчика и что с этим делать. Помимо привычных советов про именование и наличие тестов, найдёте интересные поинты про выбор СУБД и порядок в Git.

#лучшиепрактики #советы
4🍌1
​​Ваш ребёнок любит играть в видеоигры? Пустите это увлечение в продуктивное русло

Собрали в одной статье 15 видеоуроков «как сделать игру на Python». Параллельно ещё и объясняется, как работают операции и команды. Подойдёт как детям, так и взрослым, которые хотят освоить язык. 

#советы

@zen_of_python
😁5🍌21
​​Принцип Fail Fast или позвольте себе ошибаться

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

В статье доступно рассказывают, как применить такое правило к своему проекту и почему срывы сроков — это нормально.

#советы
👏3😁2👍1🍌1
Целых 25 лучших практик для разработки на Python в одной статье

Если вы хотите не просто программировать на Python, но и делать это качественно, быстро, создавать гибкий и масштабируемый код, который поймёте не только вы, но и ваши коллеги, то читайте и запоминайте:

https://proglib.io/p/25-luchshih-praktik-razrabotki-na-python-2024-07-09

Что бы вы добавили к этому списку?

#советы
2🔥1
Зачем нужен List Comprehensions и как он помогает Python-разработчикам

List Comprehensions — это мощный инструмент в Python, который позволяет создавать списки простым и читаемым способом. Используя List Comprehensions, вы можете избавиться от громоздких циклов for и сделать код более компактным.

Основной синтаксис List Comprehensions выглядит так:
[выражение for элемент in итерируемый_объект]

Где выражение определяет, что будет добавлено в новый список, а элемент перебирает каждый элемент в итерируемый_объект.

Простой пример:

Создадим список квадратов чисел от 1 до 5:
squares = [x**2 for x in range(1, 6)]
print(squares) # Результат: [1, 4, 9, 16, 25]


Пример с условием:

Теперь создадим список из чисел от 1 до 5, но включим только четные числа:
even_numbers = [x for x in range(1, 6) if x % 2 == 0]
print(even_numbers) # Результат: [2, 4]


Вложенные циклы:

Создадим матрицу 3x3 из чисел от 1 до 3:
matrix = [[x for x in range(1, 4)] for y in range(1, 4)]
print(matrix) # Результат: [[1, 2, 3], [1, 2, 3], [1, 2, 3]]


Пример с условием и вложенными циклами:

Предположим, у нас есть список словарей, и мы хотим извлечь все дни рождения:
people = [
{"first_name": "Василий", "last_name": "Марков", "birthday": "9/25/1984"},
{"first_name": "Регина", "last_name": "Павленко", "birthday": "8/21/1995"}
]

birthdays = [person["birthday"] for person in people if "birthday" in person]
print(birthdays) # Результат: ['9/25/1984', '8/21/1995']


Используя List Comprehensions, вы можете значительно сократить объем кода и сделать его более читаемым. Это особенно полезно для создания списков из данных, применения условий и работы с многомерными структурами данных.

#советы
👍122
Как писать чистый код на Python. Советы разработчикам

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

В этой статье вы узнаете, что такое PEP8, poetry, как создавать архитектуру python-приложения, какие существуют методологии Driven Development и как писать чистый код на Python.

#советы #чистыйкод
31👍1
Разбираемся в бинарном поиске на Python

Binary Search, или бинарный поиск — это эффективный способ найти элемент в отсортированном массиве. Принцип работы основан на делении массива пополам. Алгоритм постоянно уменьшает область поиска, пока не найдёт целевой элемент или не убедится, что его в массиве нет.

Вот как это происходит шаг за шагом. Сначала находим середину массива и сравниваем средний элемент с тем, который ищем. Если он совпадает с целевым, то задача выполнена. Если нет, и целевой элемент меньше среднего, ищем в левой половине массива. Если же больше — в правой. Процесс продолжается, пока не найдем элемент или массив не закончится.

Рассмотрим пример итеративного бинарного поиска на Python:

def binary_search(arr, target):
low, high = 0, len(arr) - 1

while low <= high:
mid = (low + high) // 2
guess = arr[mid]

if guess == target:
return mid
elif guess > target:
high = mid - 1
else:
low = mid + 1

return -1

# Пример использования
arr = [1, 3, 5, 7, 9, 11, 13, 15]
target = 9
result = binary_search(arr, target)
print(f"Элемент найден на индексе: {result}" if result != -1 else "Элемент не найден")


Аналогичный пример можно реализовать и рекурсивным методом:

def binary_search_recursive(arr, target, low, high):
if low > high:
return -1

mid = (low + high) // 2
guess = arr[mid]

if guess == target:
return mid
elif guess > target:
return binary_search_recursive(arr, target, low, mid - 1)
else:
return binary_search_recursive(arr, target, mid + 1, high)

# Пример использования
arr = [1, 3, 5, 7, 9, 11, 13, 15]
target = 9
result = binary_search_recursive(arr, target, 0, len(arr) - 1)
print(f"Элемент найден на индексе: {result}" if result != -1 else "Элемент не найден")


Также можно использовать встроенную библиотеку bisect для выполнения бинарного поиска:

import bisect

def binary_search_bisect(arr, x):
i = bisect.bisect_left(arr, x)
if i != len(arr) and arr[i] == x:
return i
else:
return -1

# Пример использования
arr = [2, 3, 4, 10, 40]
x = 10
result = binary_search_bisect(arr, x)
print(f"Элемент найден на индексе: {result}" if result != -1 else "Элемент не найден")


Важно помнить, что бинарный поиск работает только с отсортированными массивами. В этом его главный плюс и ограничение. Зато временная сложность у него составляет всего O(log n), что значительно быстрее линейного поиска. Это делает бинарный поиск отличным выбором для работы с большими данными.

#советы #алгоритмы
👍11❤‍🔥1
Базовая обработка данных в Python

Ввод и вывод данных — это фундаментальные операции, необходимые для взаимодействия программы с пользователем. В Python для этих целей используются несколько встроенных функций, и давайте их детально рассмотрим.

Операторы ввода

Для приема данных от пользователя в Python используется функция input(). Она позволяет запросить у пользователя ввод информации в виде строки.

name = input("Введите ваше имя: ")
print(f"Привет, {name}!")


В этом примере:
1. input("Введите ваше имя: ") — отображает пользователю сообщение и ждет ввода.
2. Введенная строка сохраняется в переменную name.
3. print(f"Привет, {name}!") — выводит приветственное сообщение с именем.

Преобразование данных из input()

Важно помнить, что функция input() всегда возвращает строку. Если вам нужны данные другого типа (например, числа), необходимо выполнить преобразование.

age = int(input("Введите ваш возраст: "))
print(f"В следующем году вам будет {age + 1} лет.")


Здесь int() преобразует введенную строку в целое число.

Операторы вывода

В Python для вывода данных на экран используется функция print(). Она может принимать несколько аргументов и автоматически добавляет пробелы между ними.

print("Привет, мир!")


Этот код просто выводит строку "Привет, мир!".

name = "Анна"
age = 25
print("Имя:", name, "Возраст:", age)


В этом примере print() выведет: Имя: Анна Возраст: 25.

Форматирование строк

Для более контролируемого и удобного вывода часто используется строковое форматирование. В Python существует несколько способов форматирования строк.

Использование f-строк (форматирование строк с помощью f-строк):
name = "Анна"
age = 25
print(f"Имя: {name}, Возраст: {age}")


Метод format():
name = "Анна"
age = 25
print("Имя: {}, Возраст: {}".format(name, age))


Оператор % (старый способ форматирования):
name = "Анна"
age = 25
print("Имя: %s, Возраст: %d" % (name, age))


Вывод в файл

Функция print() также может записывать данные в файл, если используется параметр file.

Пример записи в файл:
with open("output.txt", "w") as file:
print("Привет, мир!", file=file)


Здесь:
1. open("output.txt", "w") открывает файл (или создает новый) для записи ("w").
2. print("Привет, мир!", file=file) записывает строку в файл вместо вывода на экран.

Понимание этих функций и умение их использовать эффективно — первый шаг к написанию полезных и интерактивных программ.

#советы #основы
👍9
Media is too big
VIEW IN TELEGRAM
4 совета как писать циклы for на Python

В этом небольшом видео вы изучите практические примеры циклов for и их альтернативные решения, которые будут работать намного быстрее, и при этом сделают ваш код чище.

Здесь будут примеры с enumerate, zip, list comprehension и генераторами Python.

Видео взято отсюда: https://youtu.be/HIWfeIHocUc

#видео #for #советы
👍4
Сколько времени нужно, чтобы освоить Python?

Согласно исследованию «Factors Affecting Students' Attitudes toward Computer Programming», проведённому в 2019 году в Vilnius University, освоение поделили на три стадии:

1. Базовое понимание. С постоянными усилиями и структурированным планом обучения вы можете приобрести базовое понимание синтаксиса Python и основных концепций в течение 3-4 недель. В этом этапе обычно изучаются переменные, типы данных, условные операторы, циклы, функции.

2. Средняя компетенция. Эта стадия наступает обычно спустя шесть месяцев. Здесь вы становитесь знакомы с более продвинутыми темами, такими как работа с файлами, обработка исключений, модули, библиотеки и работа с внешними источниками данных.

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

А на каком этапе вы?

❤️ — в самом начале пути
🤯 — второй этап, инфа сотка
🗿 — я в своём сознании настолько преисполнился, что мне этот Python абсолютно понятен


#советы
20🤯18🗿16
Что должен знать каждый разработчик Python: 8 основных технологий

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

В этой статье речь пойдёт о 8 таких технологиях, без которых никак не обойтись в работе в любой сфере от инжиниринга до бекенда.

#советы
🤔4😱1👨‍💻1
10 простых способов ускорить код на Python

Только ленивый не шутил про скорость работы Python. Да, зачастую он оказывается менее производительным, чем другие языки. Однако, существуют способы, которые позволяют значительно повысить скорость при выполнении сложных вычислений или даже обработке больших объёмов данных.

В этой статье собраны 10 таких способов. Читайте и сохраняйте, чтобы не забыть.

#советы
👍6
Media is too big
VIEW IN TELEGRAM
100 вопросов с собеседований Python. Полный разбор реальных вопросов

Этот обширный набор вопросов охватывает различные аспекты языка программирования Python, включая базовые понятия, структуры данных, ООП, асинхронное программирование, веб-разработку и многое другое.

Изучите этот список, чтобы узнать, к чему быть готовым и как лучше подготовиться к собеседованию по Python.

#видео #советы
😱1
Python-интервью: что спрашивают и как успешно ответить

Чтобы попасть на действительно интересный проект, Python-разработчику нужно пройти техническое интервью, где потенциальный работодатель оценит его знания и навыки владения языком. Большинство таких интервью проходят по одному сценарию.

В этой статье собрали рекомендации, которые помогут подготовиться к Python-интервью, даже если оно у вас первое в жизни. Например:

— как начать беседу;
— популярные вопросы по различным темам;
— примеры практических задач.

#советы
🤣9🔥3
26 полезных приёмов и хитростей Python

Забираем статью, где рассказывается о полезных инструментах в Python, которые упрощают жизнь разработчикам, решая самые разные задачи — от визуализации данных до быстрого поиска ответов на вопросы.

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

#советы #python #ru
👍2