首页 > 解决方案 > 最大公约数的语法 - 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?

非常感谢你的帮助!

标签: pythonpython-3.xpython-2.7

解决方案


您偶然发现了元组分配!

简而言之,在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 的余数。

我希望这有帮助。


推荐阅读