Python同时变量递增
目前,我正试图在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]
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