Python 如何将变量添加到可变名称

Python 如何将变量添加到可变名称,python,Python,我有Python代码,它试图获得玩家的位置。但是,我总是会得到一个错误('cave_'未定义) 我的(导致错误的)代码如下所示: player_pos = cave_(player_pos)[n] #n is a number global player_pos cave_0 = (1,4,0,0) cave_1 = (2,11,2,0) 已经定义了cave和player\u pos变量,并且player\u pos是一个元组。我希望更新player\u pos,使其

我有Python代码,它试图获得玩家的位置。但是,我总是会得到一个错误('cave_'未定义)

我的(导致错误的)代码如下所示:

player_pos = cave_(player_pos)[n] #n is a number
    global player_pos
    cave_0 = (1,4,0,0)
    cave_1 = (2,11,2,0)
已经定义了
cave
player\u pos
变量,并且
player\u pos
是一个元组。我希望更新
player\u pos
,使其值类似于“5”

整个代码片段如下所示:

player_pos = cave_(player_pos)[n] #n is a number
    global player_pos
    cave_0 = (1,4,0,0)
    cave_1 = (2,11,2,0)
以此类推11次。然后是有问题的代码块


如何调试此功能?

您的语法与您尝试执行的操作不符。请考虑这个陈述:

player_pos = cave_(player_pos)[n]
首先,这将调用一个带有参数
player\u pos
的函数
cave()。接下来,这将尝试从结果中提取
n
th项。最后,该结果将分配给
player\u pos

如果尚未定义名为
cave
的变量,则此语句将失败

听起来好像您正在尝试定义一个洞穴序列,然后访问该序列中的项目。一种方法如下:

caves = [
    (1,4,0,0),
    (2,11,2,0),
    ...
]

player_pos = caves[player_pos[n]]

这样做你想达到什么目的?你会犯什么错误?什么是洞穴?请阅读并@DeepSpace-op正在尝试动态访问变量(即
cave_1
)。很可能是xy问题。调试的第一步是读取错误和回溯,但您没有提供其中任何一个。您不应该使用这样的变量。制作
cave
一本元组字典或元组元组字典,这样你就可以像
cave[player\u pos][n]
非常感谢你。这对那只虫子很有吸引力。