Решаю одну задачу.
def task(a, b): return lambda x: x in range(a, b + 1) print(task(1, 3)(2))
Искал где можно почитать про такой синтаксис - но поиск выдает, что аргументы надо передавать внутри скобок. Где можно почитать про такой синтаксис?
def task(a, b): return lambda x: x in range(a, b + 1) print(task(1, 3)(2))
ImardenПотому что эти скобки - это вызов функции, которая возвратилась.
Не пойму почему (2) стоит за скобками
a = task(1, 3)
x in range(a, b + 1)
FishHooktask(1, 3) возварщает
(1, 3)
<function task.<locals>.<lambda> at 0x00460150>
x in range(a, b + 1)
FishHookА как без перебора?
Нет, пока не спасибо.
FishHookУ него третий питон, а он не перебирает при поиске в range. range - это специальный тип (который во втором - xrange).
Зачем вам перебор значений для того
>>> range(1, 3) range(1, 3) >>> type(_) <class 'range'> >>>
py.user.nextА вот этого я не знал. Спасибо.
У него третий питон, а он не перебирает при поиске в range