Как преобразовать str в int и добавить их вместе? - PullRequest
1 голос
/ 20 января 2012

Я провел последние 2 часа, пытаясь найти решение для этого, и ничего не придумал. Так что либо это невозможно, либо это настолько просто, что никто не пишет об этом. В основном у меня есть 2 строки, которые обе равны числам, но когда я добавляю их вместе, я получаю объединение вместо числа .. вот мой код (Python)

currentNukeScriptName = nuke.root().name()
splitUpScriptName1 = currentNukeScriptName.split('/')
splitUpScriptName2 = splitUpScriptName1[-1]
splitScriptNameAndExtention = splitUpScriptName2.split('.')
currentNukeScriptName = splitScriptNameAndExtention[0]
splitUpCurrentScriptName = currentNukeScriptName.split('_')
currentVersionNumber = splitUpCurrentScriptName[-1]
decimalVersionNumber =  "1" + "," + str(currentVersionNumber)
addingNumber = 1
newVersionNumber = str(decimalVersionNumber) + str(addingNumber)

print newVersionNumber

decimaleVersionNumber = 1,019

Если я тоже изменю код новой версии:

newVersionNumber = int(decimalVersionNumber) + int(addingNumber)

Я получаю:

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

Я не уверен, что делать .. Разве это не возможно? Или я что-то не так делаю?

Edit:

Таким образом, проблема была найдена в десятичном виде, где я добавлял запятую. Что было бы лучшим способом сохранить запятую и все же сложить числа вместе?

Ответы [ 2 ]

6 голосов
/ 20 января 2012
ValueError: invalid literal for int() with base 10: '1,019'

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

0 голосов
/ 20 января 2012

Вам необходимо использовать

int.Parse(decimalVersionNumber) + int.Parse(addingNumber)

. Это позволит разобрать строковое представление чисел в целые числа, чтобы их можно было добавить.

Например:

Конкатенация строк:

"10" + "20" = "1020"

Целочисленное сложение, анализируется из строк:

int.Parse ("10") + int.Parse («20») = 30

...