关于Python中的逗号及其表示的问题[重复]

Posted

技术标签:

【中文标题】关于Python中的逗号及其表示的问题[重复]【英文标题】:Question about comma in Python and what it denotes [duplicate] 【发布时间】:2020-09-07 06:27:29 【问题描述】:

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

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

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

【问题讨论】:

【参考方案1】:

Python assignment statement 不仅支持单独分配,还支持分配到目标列表。这通常称为 unpacking,因为会提取ride-hand-side iterable 的元素并将其分配给目标列表的名称。

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

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

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

【讨论】:

【参考方案2】:

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

【讨论】:

【参考方案3】:

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

n=25 和其他是10

商 = 2

余数 = 5

【讨论】:

【参考方案4】:

翻译成:

“我希望 divmod 函数返回 something 恰好有两个部分,将这两个部分放入名为 ndigit 的变量中可以节省一些时间。

divmod 返回两个数字。虽然您可以执行以下操作:

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

上面的单行要好得多。

此外,您还可以执行 this 之类的操作:

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

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

【讨论】:

【参考方案5】:

divmod是一个除法模式,它返回除数和余数的结果(这里n是数字,10是除数)

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

将 10 除以 3 结果为 3,余数为 1

【讨论】:

以上是关于关于Python中的逗号及其表示的问题[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何从日期用逗号替换正斜杠[重复]

Python--关于dict

关于排列的表示

关于python列表的一些基础知识。

Python 中的语句

SQL Server用逗号分隔[重复]