Описание тега walrus-operator
"Оператор моржа" - это неформальный термин для синтаксиса выражения присваивания (a:= b), который был предложен в PEP 572 и введен в Python 3.8
6
ответов
Синтаксис и выражения присваивания ":=": что и почему?
PEP 572 представляет выражения присваивания, реализованные для Python 3.8. Это кажется действительно существенной новой функцией, поскольку она позволяет использовать эту форму назначения в пределах функций понимания и лямбда-функций. Что такое син…
11 май '18 в 17:50
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: := Теперь я пытаюсь объединить "присвоение оператора моржа" и "условную проверку…
06 авг '20 в 21:16
2
ответа
Как можно интерпретировать именованные выражения в f-строках?
Я пытаюсь использовать именованные выражения внутри f-строки: print(f"{(a:=5 + 6) = }") Возврат: (a:=5 + 6) = 11 Но я надеюсь на что-то вроде этого: a = 11 Возможно ли это, объединив оператор моржа и f-строки (так что мне не нужно объявлять переменн…
18 июн '20 в 10:05
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…
25 ноя '20 в 16:47
1
ответ
Ошибка в операторе Walrus
Я работал с оператором Моржа. Я заставлял пользователя угадывать число от 0 до 10. Затем его предположение добавляется в список, полный их предположений. Но как только они вводят 0, он просто распечатывает список. Проблема, с которой я столкнулся, з…
24 сен '20 в 08:29
2
ответа
Почему нельзя использовать оператор моржа в Python для установки атрибутов экземпляра?
Я только что узнал, что новый моржовый оператор (:=) нельзя использовать для установки атрибутов экземпляра, это предположительно недопустимый синтаксис (вызывает SyntaxError). Почему это?(И можете ли вы предоставить ссылку на официальные документы,…
25 сен '20 в 01:33
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