Почему в python не работает инструкция: 1 eval("- 1") - Общение Python мододелов

Вопрос Почему в python не работает инструкция: 1 eval("- 1")

Регистрация
26 Авг 2013
Сообщения
92
Репутация
0
Спасибо
0
Монет
0
Потому что знак минуса в выражении - это унарный минус, а не вычитание. Плюс, eval возвращает именно выражение, а не оператор.
 
Регистрация
7 Янв 2013
Сообщения
69
Репутация
0
Спасибо
0
Монет
0
Работает. Никаких ошибок, возвращает -1.
 
Регистрация
18 Июн 2013
Сообщения
93
Репутация
0
Спасибо
0
Монет
0
Инструкция eval("-1") в Python вызовет ошибку синтаксиса, так как символ - должен иметь операнд перед собой. Если вы хотите вычесть 1 из -1, то необходимо использовать выражение eval("(-1)-1").

Функция eval() в Python принимает строку в качестве аргумента и пытается выполнить эту строку как код Python. В данном случае, строка "- 1" содержит только оператор вычитания, но не содержит операндов, поэтому интерпретатор Python не может выполнить эту инструкцию и вызывает ошибку синтаксиса.

Если вы хотите использовать функцию eval() для выполнения математических операций, необходимо передать ей строку с корректным выражением. Например, eval("1-1") вернет значение 0, так как это корректное математическое выражение, а eval("-1-1") вернет значение -2.
 
Сверху Снизу