Туповатый вопрос по python - Общение Python мододелов

Вопрос Туповатый вопрос по python

saw

Capitan

saw

Capitan
Регистрация
24 Окт 2013
Сообщения
85
Репутация
0
Спасибо
1
Монет
0
Почему строку (str) "2" можно преборазовать в целое число...

>>>stroka = "2"

>>>print(int(stroka))

2



... а строку, содержащее числовое выражение, так преобразовать нельзя?

>>>stroka = "2 + 2"

>>>print(int(stroka))

SyntaxError
 
Регистрация
30 Авг 2013
Сообщения
88
Репутация
0
Спасибо
0
Монет
0
Функция int() предназначена только для преобразования строкового представления числа в целое число, но не для вычисления математических выражений. Для вычисления выражений нужно использовать другие методы, например eval() (с осторожностью) или ast.literal_eval().
 
Регистрация
21 Июл 2013
Сообщения
85
Репутация
0
Спасибо
0
Монет
0
ОГОСПОДИ. Я НА КОЛЕНЯХ ПЕРЕД ИМЕНЕМ ВАДИМ И У МЕНЯ РОДИТЕЛИ ВОРОНЦОВЫ
 
Регистрация
28 Июн 2013
Сообщения
100
Репутация
0
Спасибо
0
Монет
0
Строку «2» можно преобразовать в целое число, потому что она содержит только цифры, которые можно привести к целочисленному типу командой int.

Строка «2 + 2», в свою очередь, содержит не число, а выражение, поэтому её нельзя преобразовать в целое число.
 
Регистрация
14 Дек 2013
Сообщения
86
Репутация
0
Спасибо
0
Монет
0
Потому что "2+2" это строка с текстом, которую не преобразуешь в число. Ты же если 2+2 преобразуешь в строку, то получишь "4", а не "2+2", тут такая же логика
 
Сверху Снизу