python - 最大公约数的语法 - Python
问题描述
下面的程序比我的更精确、更短,因此更有吸引力。我理解 mod (%),但注释中的其余语法让我感到困惑。有谁知道这种语法叫什么或它是如何工作的?
该问题要求创建一个函数来找到两个整数的最大公约数 (gcd),这是两个整数相除而没有余数的最大数。
例如 20 和 12 的 gcd 为 4。
def gcd(x, y):
while y != 0:
(x, y) = (y, x % y) ## What is happening here? What's this syntax called?
return x
链接到我找到该程序的位置:如何在 python 中计算 mod b?
非常感谢你的帮助!
解决方案
您偶然发现了元组分配!
简而言之,在python中,您可以分配变量组,只要您从具有相同格式的结构中分配它们
这是正在发生的事情的更简单说明:
a,b = 3,5
#a is now equal to 3 and b is now equal to 5
#You literally could go:
# a = 3
# b = 5
#And it would be logically equivalent
a+b
退货
>>>8
在您的函数中,您将 y 的值(函数的第二个参数)分配给变量 x,并将 y 的值更新为 x/y 的余数。
我希望这有帮助。
推荐阅读
- php - 如果类别不活跃,则和产品设置不活跃 Laravel
- javascript - cytoscape.js 中具有多个父节点的复合节点
- python - 如何使用 Selenium 在 Firefox 中禁用推送通知
- c - 递归函数的空间复杂度(时间和空间)
- api - 有没有办法让 API 在 Azure 上暂时不可用?
- javascript - 悬停在图像上时如何使图像变宽,而其他图像变窄?
- java - 如何构建和绑定自定义 exoplayer 布局
- c++ - OpenProcess 的句柄无效。关闭句柄不起作用
- php - 根据 Woocommerce 中的付款方式停止特定客户电子邮件通知
- android - 如何更改程序全文的大小?