Python同时变量递增

时间:2012-08-28 22:43:47

标签: python variables simultaneous

目前,我正在尝试在python中同时重新定义两个变量。例如,我有基本案例

 p = 3
 q = 2

我想重新定义p和q,以便

 p = p+2q

 q = p+q

因此,p和q的元组应该是(p,q)=(3,2)然后是(7,5)然后是(17,15),依此类推。我不确定如何同时重新定义这些变量。

当然,以下代码可行:

 p = 2
 q = 3
 temp = [0,0]

 while True:
    temp[0] = p + 2q
    temp[1] = p+q
    p = temp[0]
    q = temp[1]
    print(p,q)

但我希望避免temp列表。有没有更漂亮,更蟒蛇式的方式来做到这一点?

3 个答案:

答案 0 :(得分:9)

>>> p = 2
>>> q = 3
>>> p, q = p + 2 * q, p + q
>>> print p
8
>>> print q
5
>>> 

您还可以添加可选括号:

(p, q) = (p + 2 * q, p + q)

答案 1 :(得分:5)

请参阅以下代码

p = 2
q = 3

while True:
    p, q = (p + 2*q, p + q)
    print(p, q)

答案 2 :(得分:1)

p = p + 2*q
q = q + p - 2*q

此方法应该有效