Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python同时变量递增_Python_Variables_Simultaneous - Fatal编程技术网

Python同时变量递增

Python同时变量递增,python,variables,simultaneous,Python,Variables,Simultaneous,目前,我正试图在python中同时重新定义两个变量。例如,我有基本情况 p = 3 q = 2 我想重新定义p和q,这样 p = p+2q 及 因此,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]

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

 p = 3
 q = 2
我想重新定义p和q,这样

 p = p+2q

因此,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
列表。有没有更漂亮、更像python的方法

>>> p = 2
>>> q = 3
>>> p, q = p + 2 * q, p + q
>>> print p
8
>>> print q
5
>>> 
还可以添加可选括号:

(p, q) = (p + 2 * q, p + q)
请参见下面的代码

p = 2
q = 3

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

这个方法应该行得通

是的,为了可读性,我总是喜欢添加括号。谢谢!这正是我想要的,是吗?你仔细检查过了吗?在我看来,清晰度较低的缺点。对于C语言或其他无法使用元组方法的语言来说,这可能是一个更好的解决方案。@BaylesJ这与清晰度无关(在C中也不起作用),这里,当python转到第2条语句时,
p
的值已经改变,现在
q
将有一个值,与新的
p
@PierreGM:我知道它很难看,顺序很重要。老实说,我不知道p,q=(f(p,q),g(p,q))在相同的环境中执行。我很高兴我学到了一个新东西:)@AshwiniChaudhary,我认为编辑会更清楚:这个例子(现在)确实有效,因为消除了添加到p的偏移量。我只是觉得发生的事情不太明显,所以即使它是正确的,我也不会在Python中这样做(其他语言也可能)。
p = 2
q = 3

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