3

目前,我正在尝试同时重新定义 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清单。有没有更漂亮,更蟒蛇式的方式来做到这一点?

4

3 回答 3

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)
于 2012-08-28T22:46:41.053 回答
5

请参阅下面的代码

p = 2
q = 3

while True:
    p, q = (p + 2*q, p + q)
    print(p, q)
于 2012-08-28T22:47:11.583 回答
1
p = p + 2*q
q = q + p - 2*q

这种方法应该有效

于 2012-08-28T22:50:09.237 回答