关于 Python 中的逗号及其表示的问题

Question about comma in Python and what it denotes

我希望有人能解释 'n' 和 'digit' 之间的逗号的作用。

while n > 0:
     n, digit = divmod(n, 10)
     total_sum = total_sum + digit ** 2
return total_sum

我看到逗号在其他情况下被使用,并且一直认为,在这种情况下,它意味着 n 和数字等于 divmod(n, 10)。我试图查看代码是否仍然有效,但事实并非如此。谁能解释一下 n 和数字之间的逗号是什么意思?

divmod returns 两个数字的元组(除数和余数)。使用逗号语法可以将这些数字分配给两个不同的变量。

Python assignment statement不仅支持单个赋值,还支持对目标列表的赋值。这通常称为 拆包 ,因为 ride-hand-side 可迭代对象的元素被提取并分配给目标列表的名称。

>>> a, b = 1, 2
>>> print(a)
1
>>> a, b = range(2)
>>> print(a)
0

具体来说,divmod(a, b) 函数 returns 一个 a // b, a % b 的元组。分配给两个目标会将每个术语分配给一个单独的变量。

>>> div, mod = divmod(1024, 10)
>>> print(div)
102
>>> print(mod)
4

n 是商,digit 是余数。 让我举个例子

n=25 其他是10

商 = 2

余数 = 5

翻译成:

“我希望 divmod 函数 returns something 正好有两个部分,通过将这两个部分放入名为 ndigit".

divmodreturns两个数。虽然你可以这样做:

x = divmod(n, 10)
n = x[0]
digit = x[1]

以上one-liner要好得多。

此外,您还可以执行 this:

ls = ["myValue"]
(value,) = ls
print(value) #prints: myValue

从具有单个元素的列表中解压一个值。

divmod是除法取模,return结果除以数的余数(这里n是数,10是除数)

n, digit = divmod(10,3)
n = 3
digit = 1

10除以3得3余1