关于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 恰好有两个部分,将这两个部分放入名为 n
和 digit
的变量中可以节省一些时间。
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中的逗号及其表示的问题[重复]的主要内容,如果未能解决你的问题,请参考以下文章