python变量名chang

2024-04-26 03:58:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我对python有点疑问。你知道吗

我有一段代码

screen.blit(badninja1,(badninja1px ,badninja1py))
screen.blit(badninja2,(badninja2px ,badninja2py))
screen.blit(badninja3,(badninja3px ,badninja3py))

我知道它重复3次,我想做一些重构。你知道吗

这是一段python代码 它所做的是在badnija1px和badnija1py等位置绘制badnija1。 bandnija1、badnija1px、badnija1py和其他都是变量名。你知道吗

我想把这个代码放到for循环中

for x in range(1, 4):
    #add number 1, 2, 3 to the variable name.

我试着这么做,并意识到我可以在python中轻松地组合字符串:

"Dec "+str(25)+"th".

但是,更改变量名有点棘手。你知道吗

谁能给我个提示吗?谢谢!!你知道吗


Tags: 代码forscreenblitbadnija1pybadninja3pxbadnija1pxbadninja2px
3条回答

不要显式调用变量,而是将它们放在列表中,然后迭代此变量:

my_list = [(badninja1, badninja1px ,badninja1py),
           (badninja2, badninja2px ,badninja2py),
           (badninja3, badninja3px ,badninja3py)]
for item in my_list:
    screen.blit(item[0], (item[1], item[2]))

解决方法是不要在变量名中使用数字。改用列表:

badninja = [firstitem, seconditem, thirditem, ...]   

现在您可以将badninja[0]传递给您的函数以指定第一项等

您通常会将这些值保存在列表或字典中:

badninjas = [badninja1, badninja2, badninja3]

并使用badninja对象保留其位置等信息:

for ninja in badninjas:
    screen.blit(ninja, (ninja.px, ninja.py))

您可以使用globals()locals()结果动态查找变量(两者都返回一个映射),但一般来说,您应该避免这种行为。这里当然不需要。你知道吗

相关问题 更多 >

    热门问题