10 приёмов Python, которые стоит изучить перед написанием следующего кода
Python — невероятно универсальный язык программирования, который широко используется и поддерживается широким спектром библиотек и фреймворков. Однако в обширной экосистеме Python существуют некоторые менее известные приёмы кодирования и библиотеки, которые могут значительно улучшить ваш опыт разработки и оптимизировать ваш код.
В этой статье мы рассмотрим некоторые из этих менее известных приёмов Python, которые могут быть невероятно полезными.
Давайте погрузимся и изучим эти крутые трюки:
1. all
или any
Вы устали писать сложные условные операторы в коде Python? Смотрите не дальше, чем all
и any
! Эти встроенные функции могут помочь упростить вашу логику, проверяя, оцениваются ли как True все или какие-либо элементы в итерируемом объекте. Это как иметь личного помощника, который может отфильтровать плохие яблоки для вас.
list1 = [ True , True , False , True ]
print ( all (list1))
# False
list2 = [ False , True , False ]
print ( any (list2))
# True
Функция all
возвращает значение True
, если все элементы в итерируемом объекте истинны, и False
в противном случае. Функция any
возвращает значение True
, если хотя бы один элемент в итерируемом объекте является истинным, и False
в противном случае.
2. emoji
Библиотека emoji
позволяет добавлять в строки красочные и выразительные символы. Теперь ваш код может передать ваши чувства, не говоря ни слова.
from emoji import emojize
print(emojize(":thumbs_up: Python is awesome! :thumbs_up:"))
3. from __future__ import
Оператор from __future__ import
используется для включения новых языковых функций, несовместимых со старыми версиями Python. Этот умный хак позволяет включить новые функции Python в более старых версиях языка. Это как машина времени для вашего кода!
from __future__ import division
print(5 / 2)
# 2.5
##Python 2.x would have returned integer 2.
4. inspect
Вы когда-нибудь задумывались, что происходит за кулисами вашего кода Python? Модуль inspect
может дать вам возможность заглянуть под капот! Этот удобный инструмент позволяет вам проверять атрибуты и исходный код ваших объектов во время выполнения. Это как быть детективом в собственной кодовой базе.
import inspect
## add function present in python_functions.py file
def add(x, y):
return x + y
## you want to inspect it in analysis.py file
print(inspect.getsource(add)))
5. newspaper3k
Библиотека newspaper3k
предоставляет простой способ очистки и извлечения содержимого из новостных статей. Это похоже на личного помощника по новостям, который может собрать для вас всю необходимую информацию.
#!pip install newspaper3k
from newspaper import Article
url = "http://cnn.com/2023/03/29/entertainment/the-mandalorian-episode-5-recap/index.html"
article = Article(url)
article.download()
article.parse()
article.text
Он также обеспечивает гибкость для очистки всех статей новостного веб-сайта.
6. Type hints
Type hints
используется для аннотирования типов переменных и аргументов функций в вашем коде. Они не применяются Python, но могут использоваться для обнаружения ошибок типов и улучшения качества кода.
def add(x: int, y: int) -> int:
return x + y
7. wikipedia
Библиотека wikipedia
может избавить вас от необходимости открывать Википедию в браузере для поиска информации! Эта библиотека предоставляет простой в использовании интерфейс для поиска и получения информации со страниц Википедии.
import wikipedia
# Search for a page
results = wikipedia.search('Python (programming language)')
# Get the summary of the first result
summary = wikipedia.summary(results[0])
print(summary)
8. zip
Функция zip
используется для объединения двух или более итераций в одну итерацию кортежей. Она возвращает итератор, который объединяет элементы из каждого из итерируемых объектов. Результирующий итератор останавливается, когда исчерпана самая короткая итерация ввода.
list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
zipped = zip(list1, list2)
for i, j in zipped:
print(i, j)
#1 a
#2 b
#3 c
9. uuid
Модуль uuid
предоставляет возможность генерировать UUID (универсальные уникальные идентификаторы). UUID — это 128-битные уникальные идентификаторы, которые обычно используются в компьютерных системах и приложениях для уникальной идентификации объектов, ресурсов и сущностей. Модуль uuid
может генерировать UUID с использованием различных алгоритмов, включая версию 4 по умолчанию, в которой используются случайные числа. Вот пример того, как сгенерировать UUID с помощью модуля uuid
:
import uuid
# Generate a random UUID
id = uuid.uuid4()
# Print the UUID
print(id)
#6c81a22b-5839-48ec-9f2f-842d7b96c425
10. pprint
Модуль pprint
предоставляет способ красиво выводить структуры данных Python, такие как словари и списки. В отличие от встроенной функции print
, которая выводит вывод в одну или несколько строк без какого-либо форматирования, функция pprint
выводит в более читаемом и структурированном формате с отступами и разрывами строк.
Это как если бы профессиональный организатор пришёл и навёл порядок в выводе вашего кода!
Вот пример использования модуля pprint
:
import pprint
data = {
'name': 'John',
'age': 30,
'address': {
'street': 'Main St',
'city': 'New York',
'state': 'NY'
}
}
pprint.pprint(data)
Вы должны использовать pprint
вместо print
, когда хотите вывести сложные структуры данных в удобочитаемом формате, особенно при работе с вложенными словарями или списками. Вывод pprint
более структурирован и удобен для чтения, что делает его полезным инструментом для отладки или исследования ваших данных. Вы также можете настроить форматирование вывода, изменив уровень отступа или другие параметры.
Это была вторая часть серии трюков Python, вы можете обратиться к части 1 здесь , где я рассмотрел оставшиеся 16 приёмов Python.
Заключение
Используя эти малоизвестные приемы и библиотеки Python, вы можете повысить эффективность и продуктивность написания кода. Независимо от того, работаете ли вы над анализом данных, веб-разработкой или любым другим проектом программирования, эти инструменты помогут вам сэкономить время и сделать ваш код более элегантным и эффективным. Итак, попробуйте их и посмотрите, как они могут улучшить ваш опыт программирования!