Как преобразовать строку со значением целого числа со знаком в целое число со знаком? - PullRequest
1 голос
/ 01 марта 2012

Я использую int (myString), myString = "-1" и получаю ошибку:

ValueError: invalid literal for int() with base 10: '"-1"'

Ответы [ 5 ]

10 голосов
/ 01 марта 2012

Строка содержит кавычки, т.е.

s = '"-1"'

Вам нужно избавиться от кавычек, что-то вроде

s = '"-1"'
int(s.replace('"', ''))

должно сработать.

2 голосов
/ 01 марта 2012

Вы уверены, что до конца строки выглядите как "'-1'", а не "-1"

a = "'-1'"
print int(a)
>>> ValueError: invalid literal for int() with base 10: '"-1"'

a = "-1"
print int(a)
>>> -1
1 голос
/ 01 марта 2012

str.strip метод принимает символы. Вы можете использовать его, чтобы избавиться от окружающих цитат:

>>> int('"-1"'.strip('"'))
-1
>>> 
1 голос
/ 01 марта 2012
>>> int("-1")
-1

>>> int('"-1"')

Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    int('"-1"')
ValueError: invalid literal for int() with base 10: '"-1"'

>>> '"-1"'.strip('\"')
'-1'
1 голос
/ 01 марта 2012
In [2]: int(eval('"-1"'))
Out[2]: -1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...