带有 base10 的 int() 的无效文字
Invalid literal for int() with base10
尽管我很难解释我的问题,但我尽力了:
我试图在第一步中确认先前创建的数组的某个位置是否为 0,并将该 0 替换为字符串。之后我想确认这个相同的位置是否再次为 0,如果不是,则将前一个字符串与一个新字符串连接起来。
为了更好地理解,我将展示一段我的代码:
room1=np.array([["chair","table","book","computer","person"],[0,0,0,0,0]])
以上是数组(或矩阵)
if int(room1[1,k])==0:
room1[1,k]=tipoObjF[1] #tipoObjF[1] being the string I want to replace the 0
else:
room1[1,k]=room1[1,k]+tipoObjF[1]
这是我之前提到的要做的事情:检查某个位置是否为 0,如果是,则将其替换为字符串。否则只需加入两个字符串。
当我 运行 它出现以下错误:
ValueError: invalid literal for int() with base10: 'chair1'
我希望我能够正确解释我的问题。
这个错误出现在我正在使用 ROS 的项目中,chair1 是第一个替换 0 的东西,应该加入 else 语句,使 Chair1Chair1 成为我期望的结果。
提前感谢任何愿意提供帮助的人
编辑:
最后数组应该如下所示:
room1=np.array([["chair","table","book","computer","person"],["chair1chair",0,0,0,0]])
如果您尝试将 room[1,k]
转换为 int
在 元素已交换为非整数字符串后,您不能调用int()
就可以了。例如,int("chair1chair")
会引发您看到的错误。
因为值可能是 int
或 string
,您可以从比较字符串值开始,例如:
if str(room[1,k]) == "0": ...
这样做允许 str(0) == "0"
到 return True
但也 str("hello") == "0"
到 return False
.
尽管我很难解释我的问题,但我尽力了:
我试图在第一步中确认先前创建的数组的某个位置是否为 0,并将该 0 替换为字符串。之后我想确认这个相同的位置是否再次为 0,如果不是,则将前一个字符串与一个新字符串连接起来。
为了更好地理解,我将展示一段我的代码:
room1=np.array([["chair","table","book","computer","person"],[0,0,0,0,0]])
以上是数组(或矩阵)
if int(room1[1,k])==0:
room1[1,k]=tipoObjF[1] #tipoObjF[1] being the string I want to replace the 0
else:
room1[1,k]=room1[1,k]+tipoObjF[1]
这是我之前提到的要做的事情:检查某个位置是否为 0,如果是,则将其替换为字符串。否则只需加入两个字符串。
当我 运行 它出现以下错误:
ValueError: invalid literal for int() with base10: 'chair1'
我希望我能够正确解释我的问题。 这个错误出现在我正在使用 ROS 的项目中,chair1 是第一个替换 0 的东西,应该加入 else 语句,使 Chair1Chair1 成为我期望的结果。
提前感谢任何愿意提供帮助的人
编辑: 最后数组应该如下所示:
room1=np.array([["chair","table","book","computer","person"],["chair1chair",0,0,0,0]])
如果您尝试将 room[1,k]
转换为 int
在 元素已交换为非整数字符串后,您不能调用int()
就可以了。例如,int("chair1chair")
会引发您看到的错误。
因为值可能是 int
或 string
,您可以从比较字符串值开始,例如:
if str(room[1,k]) == "0": ...
这样做允许 str(0) == "0"
到 return True
但也 str("hello") == "0"
到 return False
.