我花了最后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代码:
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'
我不确定该怎么做..这不可能吗?或者我做错了什么?
编辑:
所以问题是在我添加逗号的decimalVersionNumber中找到的。保留逗号并仍然将数字加在一起的最佳方法是什么?
答案 0 :(得分:6)
ValueError: invalid literal for int() with base 10: '1,019'
听起来它不喜欢逗号 - 请先尝试删除它。
答案 1 :(得分:0)
您需要使用
int.Parse(decimalVersionNumber) + int.Parse(addingNumber)
这会将数字的字符串表示形式解析为整数,因此可以添加它们。
例如:
字符串连接:
“10”+“20”=“1020”
整数加法,从字符串解析:
int.Parse(“10”)+ int.Parse(“20”)= 30