我不明白为什么这些变量有这些值

I don't understand why these variables have these values

我有以下 python 函数,但我对第 2 行 (q, r = 0, n) 感到困惑

1 def div3(n):
2     q, r = 0, n
3     while r >= 3:
4         q, r = q+1, r-3
5     return q

div3(6)

如果我运行函数在第二行执行时得到r=6,n=6,q=0,这是为什么呢? 我认为当函数是第一个 运行 时,在执行第二行时,值将是 r=0 和 q=6 和 n=6?和q r和n用逗号分隔的方式有关系吗?

q, r = 0, n 行实际上使用了元组拆包。加上括号,该行看起来像 (q, r) = (0, n),而不是 q, (r = 0), n。基本上,它创建元组 (0, n),将第一个元素分配给 q,将第二个元素分配给 r,因此代码等同于:

q = 0
r = n