【问题标题】:Changing multiple variables using other variables Python使用其他变量 Python 更改多个变量
【发布时间】:2018-07-20 18:00:33
【问题描述】:

我的问题是关于 Python 变量的。我有一堆变量,例如 p1、p2 和 p3。如果我想创建一个循环让我一次更改所有这些,我会怎么做?这是我目前得到的。

p1 = 0
p2 = 0
p3 = 0
p4 = 0
p5 = 0
p6 = 0
p7 = 0
p8 = 0
p9 = 0
p10 = 0



x = 10

while(x < 0):
    p+str(x) = p+str(x) + 1
    x - 1

此代码应将名为 p1、p2、p3 (ect) 的 10 个变量分别更改 1 个。

【问题讨论】:

  • 一种常见的模式是使用列表p,而不是单个变量,并将值存储为p2 == p[2]。然后只需遍历该列表。
  • 在这种情况下,我只能使用变量。不幸的是,我不能使用列表、数组、对象或字典。
  • @CODERKID 为什么?
  • @brunodesthuilliers 因为它是为 pygame 准备的,但我不想让 Pygame 参与,因为那样没人会看这个问题。
  • pygame 是如何阻止你使用列表的?此外,如果您希望得到任何 认真 的答案(不是来自复制粘贴“编码员”的黑客攻击),您宁愿解释您的真正问题(如果您想知道原因,请搜索“xy 问题”) .

标签: python-3.x


【解决方案1】:

您不能将数字添加到这样的变量中,而您可能想要使用对象、数组或字典。您正在尝试做的事情,可以很容易地在字典中完成。下面的代码展示了如何使用字典实现代码。

dictionary = {} # it can hold P1 P2 p3...
x = 10
while(x < 0):
    dictionary["p" + str(x)] = dictionary["p" + str(x)] + 1
    x - 1

您可能想进一步研究这个主题,因为这只是如何在 python 中使用字典的一个简单示例

【讨论】:

    【解决方案2】:
    >>> p1=0
    >>> p2=0
    >>> p3=0
    >>> x=3
    >>> while(x>0):
            exec("%s%d += 1"%("p",x))
            x = x -1
    
    >>> p1
    1
    >>> p2
    1
    >>> p3
    1
    

    虽然这可以完成工作。不要遵循这种方法(非常糟糕的方法),而是寻找替代方法,例如使用列表或字典。

    【讨论】:

      猜你喜欢
      • 2019-01-29
      • 1970-01-01
      • 1970-01-01
      • 2013-01-29
      • 1970-01-01
      • 1970-01-01
      • 2017-01-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多