GUIzero:“'int' 对象不可订阅”,变量被强制为字符串
GUIzero: "'int' object is not subscriptable" with variables that are forced to be strings
我正在编写一段 GUIzero 代码,旨在将二维数组的值附加到选定的文本框小部件。然而,尽管小部件值方程中的所有变量都被强制为字符串,它仍然告诉我一个值是一个整数。
leaderboard_array = ["***", 0]*5
leaderboard_box1 = Text(leaderboard_window)
leaderboard_box1.value = str(str(leaderboard_array[0][0]) + ": " + str(leaderboard_array[0][1]))
leaderboard_box2 = Text(leaderboard_window)
leaderboard_box2.value = str(str(leaderboard_array[1][0]) + ": " + str(leaderboard_array[1][1]))
leaderboard_box3 = Text(leaderboard_window)
leaderboard_box3.value = str(str(leaderboard_array[2][0]) + ": " + str(leaderboard_array[2][1]))
leaderboard_box4 = Text(leaderboard_window)
leaderboard_box4.value = str(str(leaderboard_array[3][0]) + ": " + str(leaderboard_array[3][1]))
leaderboard_box5 = Text(leaderboard_window)
leaderboard_box5.value = str(str(leaderboard_array[4][0]) + ": " + str(leaderboard_array[4][1]))
具体的错误代码是这样的:
leaderboard_box2.value = str(str(leaderboard_array[1][0]) + ": " + str(leaderboard_array[1][1]))
类型错误:'int' 对象不可订阅
根据你的问题,错误似乎来自这一行:
leaderboard_box2.value = str(str(leaderboard_array[1][0]) + ": " + str(leaderboard_array[1][1]))
错误的地方是当你调用leaderboard_array[1]时,排行榜数组第一个索引位置的值是某种整数。在您的代码中,通过调用:
leaderboard_array[1][1]
# or
leaderboard_array[1][0]
您正试图索引一个整数,这是不可能的。我建议打印出 leaderboard_array[1] 是什么,以便更好地了解为什么会发生此错误。
leaderboard_array[1][0]
正在索引 leaderboard_array
的第二项,即 0
(即 int
)。我想你的意思是让排行榜数组成为一个包含更多列表的列表,你可以通过使用两组 []
将第 1 行替换为 leaderboard_array = [["***", 0]] * 5
来获得
我正在编写一段 GUIzero 代码,旨在将二维数组的值附加到选定的文本框小部件。然而,尽管小部件值方程中的所有变量都被强制为字符串,它仍然告诉我一个值是一个整数。
leaderboard_array = ["***", 0]*5
leaderboard_box1 = Text(leaderboard_window)
leaderboard_box1.value = str(str(leaderboard_array[0][0]) + ": " + str(leaderboard_array[0][1]))
leaderboard_box2 = Text(leaderboard_window)
leaderboard_box2.value = str(str(leaderboard_array[1][0]) + ": " + str(leaderboard_array[1][1]))
leaderboard_box3 = Text(leaderboard_window)
leaderboard_box3.value = str(str(leaderboard_array[2][0]) + ": " + str(leaderboard_array[2][1]))
leaderboard_box4 = Text(leaderboard_window)
leaderboard_box4.value = str(str(leaderboard_array[3][0]) + ": " + str(leaderboard_array[3][1]))
leaderboard_box5 = Text(leaderboard_window)
leaderboard_box5.value = str(str(leaderboard_array[4][0]) + ": " + str(leaderboard_array[4][1]))
具体的错误代码是这样的: leaderboard_box2.value = str(str(leaderboard_array[1][0]) + ": " + str(leaderboard_array[1][1])) 类型错误:'int' 对象不可订阅
根据你的问题,错误似乎来自这一行:
leaderboard_box2.value = str(str(leaderboard_array[1][0]) + ": " + str(leaderboard_array[1][1]))
错误的地方是当你调用leaderboard_array[1]时,排行榜数组第一个索引位置的值是某种整数。在您的代码中,通过调用:
leaderboard_array[1][1]
# or
leaderboard_array[1][0]
您正试图索引一个整数,这是不可能的。我建议打印出 leaderboard_array[1] 是什么,以便更好地了解为什么会发生此错误。
leaderboard_array[1][0]
正在索引 leaderboard_array
的第二项,即 0
(即 int
)。我想你的意思是让排行榜数组成为一个包含更多列表的列表,你可以通过使用两组 []
leaderboard_array = [["***", 0]] * 5
来获得