170 похожих чатов

Нужно вытащить оператор + из строки "+" и использовать его

для сложения чисел
Как это можно сделать?

75 ответов

17 просмотров

какой-нибудь eval

а вообще идея странная имхо

sum(text.split("+"))

Алиса Кассель-Королёва
ээээ ты чего

ну откуда я знаю, что у него там

rasput
ну откуда я знаю, что у него там

ну откуда я знаю, что у неготам

solarmolly-Pilipenko Автор вопроса
Patrick [in search of work]
sum(text.split("+"))

не то, в строке содержится только сам оператор (он может быть не только +, но и / и * и че угодно)

solarmolly Pilipenko
не то, в строке содержится только сам оператор (он...

не то, в строке содержится только сам оператор (он может быть не только +, но и / и * и че угодно)

1

solarmolly Pilipenko
не то, в строке содержится только сам оператор (он...

парси строку строй AST где узлами будут операции а ветвями операнды далее вычисляй дерево через какой нить паттерн посититель

Игорь Игорян
парси строку строй AST где узлами будут операции а...

Опасные вы ребята. Там задачка детская а вы уже аст достали

ах, ёпт, ну ифами

а ну это обратная польская нотация

solarmolly-Pilipenko Автор вопроса
rasput
ах, ёпт, ну ифами

разве не должно быть способа получше?

На 3.10 это займет 9 строк

Игорь Игорян
а ну это обратная польская нотация

да при чём тут она, тут даже парсить ничего не надо

solarmolly Pilipenko
разве не должно быть способа получше?

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

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

Игорь Игорян
если без эвала, то можно сделать словарь который б...

ну, способов решить задачу больше 3, значит как её решать уже зависит от решающего (работает только для cp)

Patrick [in search of work]
💩

давай без эвала красивее чето придумай

Игорь Игорян
убейся

Достойный соперник

Patrick [in search of work]
Ифы будут с 100 раз красивее

на каждую операцию по ифу ? гениально, ходят слухи что больше 2 ифов уже пахнет говном

rasput
switch, лол

https://t.me/ru_python_beginners/1972491

неа. в обратной польской - суффикс а тут префикс, как в лиспе

Zart
неа. в обратной польской - суффикс а тут префикс, ...

че то мне запомнилось что в польской префикс именно, ну ладно

Игорь Игорян
че то мне запомнилось что в польской префикс именн...

ну. в польской префкисная, в обратной - суффиксная

rasput
ну. в польской префкисная, в обратной - суффиксная

Ты смеешь перечит слово самому умному в чате? Да кто ты такой

rasput
ну. в польской префкисная, в обратной - суффиксная

"Обра́тная по́льская за́пись (англ. Reverse Polish notation, RPN) — форма записи математических и логических выражений, в которой операнды расположены перед знаками операций. " не угадал

Patrick [in search of work]
8 строк?

а ты чистоту кода по кол-ву строк считаешь ? сочувствую

Patrick [in search of work]
Так это ты за простыню высрал

написать алгортим полностью в ифах это не простыня ?

Игорь Игорян
написать алгортим полностью в ифах это не простыня...

8 строк вся функция. У тебя проблемы с замерами простынь

Patrick [in search of work]
Так это ты за простыню высрал

Давай обьективно, неужели вот это: ops = { '+': lambda a, b: a + b, '-': lambda a, b: a - b, '/': lambda a, b: a / b, '*': lambda a, b: a * b, } op, a, b = ("+", 1, 2) r_ = ops[op](a, b) хуже чем это: op, a, b = ("+", 1, 2) if op == '+': r_ = a + b elif op == '-': r_ = a - b elif op == '/': r_ = a / b else: r_ = a * b

Игорь Игорян
Давай обьективно, неужели вот это: ops = { '+...

ops = { '+': operator.add, '-': operator.sub, '/': operator.truediv, '*': operator.mul, } op, a, b = ("+", 1, 2) r_ = ops[op](a, b)

Игорь Игорян
Давай обьективно, неужели вот это: ops = { '+...

на 4х вариантах как-то пофигу. Оба выглядят приемлемо.

Игорь Игорян
Давай обьективно, неужели вот это: ops = { '+...

op, a, b = ("+", 1, 2) if op == '+': return a + b elif op == '-': return a - b elif op == '/': return a / b else: return a * b

Tishka17
ops = { '+': operator.add, '-': operator.s...

согласен, но я о том что лучше замапить действия на словарь нежели писать пелену ифов, ну в данном конкретном случае

Patrick [in search of work]
op, a, b = ("+", 1, 2) if op == '+': return a + b...

отвратительно. кто сказал что в else всегда попадет * ?

Alex
отвратительно. кто сказал что в else всегда попаде...

ну, человек ещё выше написал именно так да и в задаче сказано так так что я на это глаза закрыл

Tishka17
Зачем?

Мы на кодеварс. Низя

Patrick [in search of work]
Чо

operator - билтин модуль

Patrick [in search of work]
Мы на кодеварс. Низя

Ну два варианта уже были

Похожие вопросы

Обсуждают сегодня

Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Мужики и девушки, привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных...
Kraszx
14
function LoadMemoryFromInet2( f:TMemoryStream; const url:string; var e:string ):Boolean; var http:TIdHttp; LHandler: TIdSSLIOHandlerSocketOpenSSL;begin Result := fals...
Александр Смоляков
1
Я вот подумал. SSE выполняет операции максимум с 64-битной точностью. А FPU - всегда с 80-битной. Разве не должно быть FPU точнее тогда?
The Bird of Hermes
13
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
как быть с принтером? такой подход прокатит?
zamtmn
12
This is a big issue. Just by being a citizen of a country, you are denied to contribute to Open Source software: https://youtu.be/L5Ec5jrpLVk?si=1iIuHnMPbCB4anV-
Sharuzzaman Ahmat Raslan
72
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
Карта сайта