Zen of Python
20.1K subscribers
1.29K photos
179 videos
36 files
3.3K links
Полный Дзен Пайтона в одном канале

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

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

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

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

Регистрация в перечне РКН: https://tprg.ru/xZOL
Download Telegram
100 бесплатных шаблонов резюме для IT-специалиста

Резюме — это не всегда строгий документ для описания навыков и опыта работы. В него можно внести уместную нотку креатива.

В статье — про то, как составить творческое резюме, которое понравится IT-рекрутеру: где найти оригинальный шаблон и на что обратить внимание при выборе. А бонусом — подборка из 100 бесплатных шаблонов:

https://tproger.ru/articles/kak-sostavit-tvorcheskoe-rezjume-100-krutyh-shablonov/

#советы #карьера
👍18😁5
Вам нужен чистый код? Используйте правило шести

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

https://habr.com/ru/company/sibur_official/blog/703172/

#советы
👍5🤔2🤡21
Самые полезные навыки для 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