Описание тега walrus-operator

"Оператор моржа" - это неформальный термин для синтаксиса выражения присваивания (a:= b), который был предложен в PEP 572 и введен в Python 3.8
6 ответов

Синтаксис и выражения присваивания ":=": что и почему?

PEP 572 представляет выражения присваивания, реализованные для Python 3.8. Это кажется действительно существенной новой функцией, поскольку она позволяет использовать эту форму назначения в пределах функций понимания и лямбда-функций. Что такое син…
1 ответ

Почему оператор моржа не передает аргументы ключевого слова?

Почему оператор моржа не передает аргумент ключевого слова figsize к matplotlib.pyplot.figure в этом коде? #TODO: visualize whether the index is a valid x_value fontsize=21 plt.figure(figsize:=(8,8)) plt.scatter(x_values_theory, y_values_theory, lab…
25 авг '20 в 05:26
3 ответа

Нечетный синтаксис (оператор моржа в наследовании)

Я искал грамматику Python и выяснил, что вы можете использовать оператор моржа в наследовании! Не веря, попробовал: class foo: pass class bar(foobar := foo): def x(self): print("it works!") b = bar() b.x() Это не вызывает каких - либо ошибку синтакс…
03 июн '20 в 00:17
0 ответов

Альтернативы использованию оператора моржа:= внутри вложенного понимания

Скажем, для демонстрации я должен взять список "входных точек" и вывести три пары чисел, начинающиеся с этих точек: 1 -> [(1, 2), (3, 4), (5, 6)] 12 -> [(12, 13), (14, 15), (16, 17)] ... Я мог бы сделать это в расширенном цикле for: points = […
30 авг '20 в 20:22
2 ответа

Каков правильный синтаксис оператора Walrus с тернарным оператором?

Если посмотреть на Python-Dev и Stackru, эквивалент тернарного оператора Python: a if condition else b Глядя на PEP-572 и Stackru, я понимаю, что такое оператор Walrus: := Теперь я пытаюсь объединить "присвоение оператора моржа" и "условную проверку…
2 ответа

Как можно интерпретировать именованные выражения в f-строках?

Я пытаюсь использовать именованные выражения внутри f-строки: print(f"{(a:=5 + 6) = }") Возврат: (a:=5 + 6) = 11 Но я надеюсь на что-то вроде этого: a = 11 Возможно ли это, объединив оператор моржа и f-строки (так что мне не нужно объявлять переменн…
1 ответ

Оператор Walrus для фильтрации поиска по регулярным выражениям в понимании списка

У меня есть список строк Python. Я хочу выполнить поиск по регулярным выражениям для каждого элемента, отфильтровывая только те элементы, для которых мне удалось захватить группу регулярных выражений. Я думаю, что могу выполнить поиск по регулярному…
14 авг '20 в 16:04
1 ответ

Используйте оператор моржа при проверке значения

Как я могу проверить, равна ли переменная чему-либо, и установить новую переменную в дочерней области? Например: bar = 'foobar' my_slice = bar[:3] if my_slice == 'foo': print(my_slice) Кажется, что новый оператор моржа здесь был бы полезен, но не ср…
24 авг '20 в 00:04
1 ответ

Python: есть ли оператор Walrus для срезов объекта?

Мой вопрос в том, что во всех примерах моржа они используют весь объект для логического значения, например if (x := len(s)) > 5: print(x) обращает x = len(s) if x > 5: print(x) Есть ли способ сделать это для фрагментов x, если x был строкой? н…
24 июл '20 в 03:27
0 ответов

Как поделиться пакетами pip3.7 с pip3.8 - MacOs

У меня установлен python 3.7 в /usr/local/bin/python3.7и я недавно узнал о новом операторе под названием моржовый оператор := который был введен в python 3.8, вот как он работает для тех, кто не знаком с ним, как я, 5 минут назад: my_list = [1, 2, 3…
30 июн '20 в 09:26
3 ответа

Как проверить, была ли нажата клавиша Enter при использовании оператора Walrus в Python?

Я пытаюсь получить данные от пользователя с помощью оператора Walrus :=, но если пользователь вводит Enter ключ только какinput, чем скрипт python завершится. Как я могу поймать эту ошибку и убедиться, что пользователь не только нажал Enter клавишу?…
16 июл '20 в 03:39
3 ответа

Почему я не могу присвоить именованное выражение (оператор моржа LHS)?

Присваивание выражениям (в отличие от имен) в Python обычное дело. Например, это совершенно правильный синтаксис: my.object["with_some"].very_long["expression"] = func(my.object["with_some"].very_long["expression&q…
1 ответ

Ошибка в операторе Walrus

Я работал с оператором Моржа. Я заставлял пользователя угадывать число от 0 до 10. Затем его предположение добавляется в список, полный их предположений. Но как только они вводят 0, он просто распечатывает список. Проблема, с которой я столкнулся, з…
24 сен '20 в 08:29
2 ответа

Почему нельзя использовать оператор моржа в Python для установки атрибутов экземпляра?

Я только что узнал, что новый моржовый оператор (:=) нельзя использовать для установки атрибутов экземпляра, это предположительно недопустимый синтаксис (вызывает SyntaxError). Почему это?(И можете ли вы предоставить ссылку на официальные документы,…
1 ответ

Странное поведение Python 3.8 Walrus Operator: цепные неравенства

Следующий код: a,b=1,2 print((x:=a)<2<(z:=b) or z>1>x) print((x:=a)<1<(y:=b) or y>1>x) дает следующий результат: False Traceback (most recent call last): File "C:/Users/phili/PycharmProjects/ML 1/CodingBat exercises.py&q…
10 сен '20 в 22:30
1 ответ

Почему «if not a: = say_empty()» вызывает ошибку SyntaxError?

PEP 572 вводит оператор присваивания («оператор моржа»). Следующий код работает и выводит empty def say_empty(): return '' if a := say_empty(): print("not empty") else: print("empty") Я попытался отрицать условие: def say_empty(): return '' if not a…
20 фев '21 в 10:47
1 ответ

Почему оператор моржа для переменной-члена вызывает SyntaxError?

Почему я не могу воспользоваться оператором моржа :=присвоить атрибуту? Работает при присвоении локальной переменной: my_eyes = ["left", "right"] if saved_eye := my_eyes.index("left"): print(saved_eye) # outputs >>> 0 Но это синтаксическая …
26 апр '21 в 05:38
0 ответов

Python, использующий лямбда-функцию при назначении лямбда-функций без параметров

Почему не работает следующий код? print_hello := lambda : print("hello") Из того, что я видел в Python, функции также считаются типами данных и могут храниться в переменных, которые можно вызывать, вызывая имя переменной, например. . И видя, что лям…
27 апр '21 в 12:48
2 ответа

Как набрать подсказку с оператором моржа?

Я пытаюсь ввести намек на выражение оператора моржа, т.е. while (var: int := some_func()): ... Как я могу это сделать?
03 июн '21 в 23:06
2 ответа

Почему оператор Walrus не работает, если он реализован внутри оператора return этой функции?

Я пытался решить эту проблему, когда думал о реализации оператора внутри оператора return. Вот вопрос: Цифровой корень - это рекурсивная сумма всех цифр числа. Для данного n возьмите сумму цифр n. Если это значение имеет более одной цифры, продолжай…
10 июл '21 в 13:14