@ithumor
Канал "Полный Дзен Пайтона" - идеальное место для всех поклонников языка программирования Python, желающих углубить свои знания и навыки. Здесь вы найдете мудрость и философию Python, постигая искусство программирования через глаза его создателей
Заглянув в канал, вы обнаружите полезные советы, интересные цитаты и обсуждения, помогающие вам стать более уверенным и продвинутым разработчиком. Познание Дзена Python - это путь к осознанности в программировании
Хотите узнать больше о Python и его философии? Присоединяйтесь к каналу "Полный Дзен Пайтона" прямо сейчас и откройте для себя новые горизонты в мире кода!
Если у вас есть вопросы или вы хотите разместить рекламу, обращайтесь к администратору канала @tproger_sales_bot. Подробные правила общения доступны по ссылке: https://tprg.ru/rules. Также не забывайте заглядывать в другие каналы сообщества @tproger_channels и посещать сайт проекта: https://tprg.ru/site. Мы также предлагаем множество других интересных проектов, о которых можно узнать здесь: https://tprg.ru/media.
18 Feb, 11:04
18 Feb, 07:03
17 Feb, 15:01
17 Feb, 07:01
16 Feb, 07:13
15 Feb, 07:11
14 Feb, 12:09
14 Feb, 07:09
13 Feb, 15:07
13 Feb, 11:00
13 Feb, 07:07
product, chain
, pairwise);
12 Feb, 15:08
12 Feb, 07:05
11 Feb, 17:09
pd.set_option()
в библиотеке Pandas позволяет настраивать различные параметры отображения и поведения датафрейма, улучшая пользовательский опыт. Она позволяет изменять такие настройки, как максимальное количество отображаемых строк и столбцов, точность представления чисел, форматирование дат и времени, а также задавать бэкенд-движки при чтении файлов Excel, баз SQL и проч. Пользователи могут установить параметры как глобально, так и для конкретных сессий, что позволяет тонко настраивать визуализацию данных под свои нужды. Доступные параметры можно просмотреть с помощью pd.get_option()
и pd.describe_option()
, что упрощает управление настройками.10 Feb, 15:01
10 Feb, 07:01
09 Feb, 15:13
09 Feb, 07:13
08 Feb, 07:11
07 Feb, 15:10
07 Feb, 07:09
06 Feb, 15:07
05 Feb, 15:05
04 Feb, 15:03
04 Feb, 08:03
LISTEN / NOTIFY
и FOR UPDATE SKIP LOCKED
PostgreSQL, а также упрощать обработку больших объемов данных.03 Feb, 15:03
from tests.test_catalog import run_basic_tests
if __name__ == "__main__":
run_basic_tests()
03 Feb, 08:02
28 Jan, 15:03
28 Jan, 08:03
27 Jan, 15:02
27 Jan, 08:02
26 Jan, 14:13
25 Jan, 14:11
25 Jan, 08:11
24 Jan, 15:09
24 Jan, 08:09
23 Jan, 15:07
23 Jan, 08:07
scipy.fftpack.dctn()
для вычисления многомерного дискретного косинусного преобразования (DCT);scipy.special
добавлены новые функции loggamma()
, log_softmax()
, softmax()
;scipy.optimize
, связанные с работой функций minimize()
и curve_fit()
;scipy.interpolate
изменено поведение функции interp1d()
для случаев с экстраполяцией;scipy.signal
обновлены параметры по умолчанию для функций firwin()
и iirfilter().22 Jan, 15:05
21 Jan, 14:03
20 Jan, 14:02
20 Jan, 08:01
19 Jan, 15:13
19 Jan, 14:01
19 Jan, 08:14
18 Jan, 15:11
18 Jan, 08:11
17 Jan, 15:09
17 Jan, 08:09
16 Jan, 08:07
15 Jan, 15:07
15 Jan, 15:05
15 Jan, 08:05
14 Jan, 15:04
14 Jan, 11:01
13 Jan, 15:01
wat / объект
покажет:13 Jan, 08:01
12 Jan, 09:17
06 Jan, 15:01
06 Jan, 08:01
05 Jan, 15:13
05 Jan, 08:13
04 Jan, 15:11
04 Jan, 08:12
03 Jan, 15:09
03 Jan, 08:09
02 Jan, 13:07
02 Jan, 08:07
01 Jan, 15:05
01 Jan, 08:06
ER = (лайки + комментарии) / подписчики * 100%
31 Dec, 15:03
30 Dec, 15:01
30 Dec, 08:01
29 Dec, 15:13
28 Dec, 15:11
28 Dec, 08:11
27 Dec, 15:09
27 Dec, 10:10
27 Dec, 08:09
26 Dec, 15:07
26 Dec, 08:07
25 Dec, 17:05
import enlighten
manager = enlighten.get_manager()
pbar = manager.counter(total=100, desc='Basic', unit='ticks')
25 Dec, 08:06
24 Dec, 17:03
23 Dec, 15:02
23 Dec, 08:02
numpy.matvec()
для перемножения матрицы и вектора;numpy.vecmat()
для перемножения вектора и матрицы;21 Dec, 15:11
plt.xkcd()
. Она строит графики в стиле одноименных комиксов (как на картинке).with plt.xkcd():
# Based on "Stove Ownership" from XKCD by Randall Munroe
# https://xkcd.com/418/
fig = plt.figure()
ax = fig.add_axes((0.1, 0.2, 0.8, 0.7))
ax.spines[['top', 'right']].set_visible(False)
ax.set_xticks([])
ax.set_yticks([])
ax.set_ylim([-30, 10])
data = np.ones(100)
data[70:] -= np.arange(30)
ax.annotate(
'THE DAY I REALIZED\nI COULD COOK BACON\nWHENEVER I WANTED',
xy=(70, 1), arrowprops=dict(arrowstyle='->'), xytext=(15, -10))
ax.plot(data)
ax.set_xlabel('time')
ax.set_ylabel('my overall health')
fig.text(
0.5, 0.05,
'"Stove Ownership" from xkcd by Randall Munroe',
ha='center')
30 Nov, 14:11
30 Nov, 08:11
29 Nov, 15:09
29 Nov, 08:09
28 Nov, 15:11
28 Nov, 12:15
28 Nov, 08:07
28 Nov, 08:07
27 Nov, 15:05
26 Nov, 15:03
26 Nov, 08:03
25 Nov, 15:02
25 Nov, 08:02
20 Nov, 15:05
print([object, ...][, sep=’ ‘][, end=’\n’][, file=sys.stdout]
sep
– строка, которая должна вставляться между объектами при выводе. По умолчанию состоит из одного пробела. Чтобы подавить вывод строки разделителя, в этом аргументе следует передать пустую строку. end
– строка, добавляемая в конец выводимого текста. По умолчанию содержит символ конца строки \n
. Если в этом аргументе передать пустую строку, следующий вызов функции print начнет вывод текста с позиции, где закончился вывод текущей строки.file
– объект файла, стандартный поток или другой объект, похожий на файл, куда будет выводиться текст. with open('output.txt', 'w') as f:
# Используем print для записи в файл с немедленным сбросом буфера
print("Hello, World!", file=f, flush=True)
print
получает текстовое представление объекта с помощью встроенной функции str
. Это может привести к неожиданным результатам на выводе: «сплющенные» массивы, ссылка на объект в памяти (<__main__.NoStrClass object at 0x...>
) вместо самого «контента».print("Python", "is", "fun!")
pprint
print
называется «волчья стена» (раньше для отлова волков на огороженной земле возводили забор по середине, чтобы отсечь половину территории, где мог находиться хищник, и так «половинили» до излова)<main.MyClass object at 0x...>
вместо самих данных, значит, в кастомном классе того или иного инструмента нет встроенного метода __str__
/ __repr__
. Тут нет единой формулы решения, однако StackOverflow полнится подобными вопросами.20 Nov, 08:05
just
, предлагает переиначить дефолтную структуру Django-проекта и даже версионирует .env. Браво!19 Nov, 08:03
18 Nov, 15:03
18 Nov, 08:03
17 Nov, 15:13
17 Nov, 08:13
16 Nov, 08:11
15 Nov, 15:09
15 Nov, 08:09
14 Nov, 15:07
14 Nov, 14:02
14 Nov, 08:07
class Vector2D:
def __init__(self, x, y):
self.x = x
self.y = y
def __add__(self, other):
return Vector2D(self.x + other.x, self.y + other.y)
def __repr__(self):
return f"Vector2D({self.x}, {self.y})"
# Пример использования
x = Vector2D(3, 4)
y = Vector2D(5, 6)
result = x + y
print(result) # Вывод: Vector2D(8, 10)
Vector2D
определяет 2D-вектор с координатами x
и y
. Метод __add__
перегружает оператор +
, чтобы складывать координаты двух векторов. Метод __repr__
определяет, как объект будет представлен, чтобы было удобно его видеть при выводе. В итоге, мы теперь умеем складывать вектора, как на уроках школьной алгебры, простым знаком плюса.__init__
: Вызывается при создании нового объекта, используется для инициализации атрибутов объекта.__str__
: Определяет строковое представление объекта, используется функцией str()
и при выводе через print()
.__repr__
: Определяет, как будет выводится итоговый объект. __add__
: Перегружает оператор +
, используется для определения поведения сложения объектов.__sub__
: Перегружает оператор -
, используется для определения поведения вычитания объектов.__mul__
: Перегружает оператор *
, используется для определения поведения умножения объектов.__truediv__
: Перегружает оператор /
, используется для определения поведения деления объектов.__getitem__
: Перегружает оператор []
, используется для доступа к элементам объекта, как в списках или словарях.__setitem__
: Перегружает оператор []
, используется для задания значений элементам объекта.__len__
: Возвращает длину объекта, используется функцией len()
.13 Nov, 15:05
12 Nov, 15:03
12 Nov, 06:03
11 Nov, 15:01
11 Nov, 08:10
10 Nov, 15:13
10 Nov, 08:13
09 Nov, 15:11
08 Nov, 13:11
08 Nov, 08:09
help
.07 Nov, 15:07
07 Nov, 08:07
06 Nov, 15:05
06 Nov, 12:03
06 Nov, 08:05
05 Nov, 15:04
if
языка Python. dict, list, str, tuple, int, float, complex, bytes, type, set
и т.д.05 Nov, 08:03
def add(a, b):
return a + b
def add(a: int, b: int) -> int:
return a + b
def send_data(sender, data):
sender.send(data)
from typing import Protocol, Mapping, Any
class SenderProtocol(Protocol):
def send(data: Mapping[str, Any]) -> None:
...
def send_data(sender: SenderProtocol, data):
sender.send(data)
04 Nov, 15:02
04 Nov, 08:02
03 Nov, 15:13
03 Nov, 06:13
02 Nov, 08:11
01 Nov, 11:05
01 Nov, 08:09
31 Oct, 15:31
30 Oct, 14:05
30 Oct, 06:02
29 Oct, 14:01
29 Oct, 08:02
28 Oct, 14:32
28 Oct, 13:30
28 Oct, 06:32
27 Oct, 07:31
26 Oct, 15:02
26 Oct, 07:02
def map_function(func, numbers):
return [func(n) for n in numbers]
def add_two(x):
return x + 2
def square(x):
return x * x
numbers = [1, 2, 3, 4, 5]
# Применяем add_two ко всем элементам списка
new_numbers_1 = map_function(add_two, numbers)
print(new_numbers_1) # Результат: [3, 4, 5, 6, 7]
# Применяем square ко всем элементам списка
new_numbers_2 = map_function(square, numbers)
print(new_numbers_2) # Результат: [1, 4, 9, 16, 25]
map_function
является функцией высшего порядка, потому что она принимает другую функцию (add_two
или square
) и применяет её ко всем элементам заданного списка.map()
, filter()
, и reduce()
:map(func, iterable)
: Применяет функцию func
ко всем элементам в iterable
.filter(func, iterable)
: Фильтрует элементы в iterable
, оставляя только те, для которых func
возвращает True
.reduce(func, iterable)
: Последовательно применяет func
к элементам iterable
, сводя его к единому значению.25 Oct, 13:33
25 Oct, 07:04
24 Oct, 07:32
23 Oct, 14:34
23 Oct, 07:02
22 Oct, 16:33
22 Oct, 12:04
geopy
— это библиотека для работы с геокодированием в Python. Геокодирование — это процесс преобразования адресов (например, "221B Baker Street, London") в географические координаты (широту и долготу). Это полезно, когда вы хотите работать с географической информацией, например, находить расстояния между местами, определять местонахождение и визуализировать точки на карте.geopy
можно с помощью pip
, который является стандартным менеджером пакетов в Python. Откройте терминал или командную строку и выполните следующую команду:pip install geopy
geopy
для работы с различными сервисами геокодирования. Вот простой пример того, как он работает:from geopy.geocoders import Nominatim
# Создаем объект геокодера Nominatim
geolocator = Nominatim(user_agent="myGeocoder")
# Преобразуем адрес в координаты
location = geolocator.geocode("221B Baker Street, London")
print((location.latitude, location.longitude)) # Выводит координаты адреса
# Преобразуем координаты в адрес
location = geolocator.reverse("51.5237676, -0.1585557")
print(location.address) # Выводит адрес по координатам
geopy
, который работает с OpenStreetMap.geolocator
— это объект, через который выполняются операции геокодирования. Параметр user_agent
нужен для идентификации приложения, использующего сервис.geocode
преобразует текстовый адрес в объект, содержащий координаты (широту и долготу).reverse
выполняет обратную операцию, преобразуя координаты в текстовый адрес.geopy
— это удобная библиотека для работы с географическими данными в Python. С ее помощью можно легко преобразовать адреса в координаты и обратно, что полезно для множества приложений, работающих с картами и геолокацией. Попробуйте применить geopy
в своих проектах для добавления возможностей геокодирования! 22 Oct, 11:05
21 Oct, 14:03
21 Oct, 06:33
19 Oct, 13:02
19 Oct, 07:32
18 Oct, 15:32
18 Oct, 10:51
17 Oct, 10:26
16 Oct, 15:32
16 Oct, 10:04
16 Oct, 09:03
15 Oct, 15:03
15 Oct, 10:15
15 Oct, 09:01
14 Oct, 14:04
14 Oct, 08:35