PythonBoost - сообщество питонистов
12.1K subscribers
295 photos
6 videos
547 links
Лучший Python телеграм канал для новичков.

Цель: подготовка студентов, начинающих питонистов к нахождению первой работы.

@anothertechrock

РКН: https://kurl.ru/Jhcwp
Download Telegram
Трюк дня. Звездочка в списке параметров функции

В Python 3 можно использовать звездочку "*" в списке параметров функции, чтобы следующие за ней параметры считались обязательными именованными аргументами:

>>> def f(a, b, *, c='x', d='y', e='z'):
return 'Hello'

Чтобы передать значения для c, d и e, вам придется явно задать их в виде пар "ключ=значение":

>>> f(1, 2, 'p', 'q', 'v')
TypeError:
"f() takes 2 positional arguments but 5 were given"

>>> f(1, 2, c='p', d='q',e='v')
'Hello'

Укажем именованные аргументы без значений по умолчанию и увидим, что они обязательны:

>>> def f(a, b, *, c, d, e):
return 'Hello'

>>> f(1, 2)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: f() missing 3 required keyword-only arguments: 'c', 'd', and 'e'

#tips
Трюк дня. Подсчет элементов в итерируемом объекте

collections.Counter позволяет находить наиболее часто встречающиеся элементы в итерируемом объекте:

>>> import collections
>>> c = collections.Counter('helloworld')

>>> c
Counter({'l': 3, 'o': 2, 'e': 1, 'd': 1, 'h': 1, 'r': 1, 'w': 1})

>>> c.most_common(3)
[('l', 3), ('o', 2), ('e', 1)]

#tips
Трюк дня. Блок else в циклах for и while

В Python циклы for и while могут содержать блок else, который выполнится, только если цикл завершится без применения break.

#tips