python - 最大公约数的语法 - Python

标签 python python-3.x python-2.7

下面的程序比我的更精确、更短,因此更有吸引力。我理解 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 

链接到我找到该程序的位置:How to calculate a mod b in python?

非常感谢您的帮助!

最佳答案

您偶然发现了元组分配!

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

我希望这会有所帮助。

关于python - 最大公约数的语法 - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54395244/

相关文章:

python - 机器学习预测用户参与度

python - 如何使用开始和结束索引对 numpy 行进行切片

python-3.x - 错误 : no DISPLAY environment variable specified

python - 超出最大递归深度,但仅在使用装饰器时

python - 什么范围函数对 Python 列表有作用?

python - 在 Python 中建立 HTTPS 连接时出现 HTTP 400 错误请求?

python - 需要调用函数的帮助

python - 为什么我的 python 代码在调试器中按预期运行而不是其他方式?

python - 使用 py2exe 和 BeautifulSoup。脚本运行正常,但转换为 .exe 后,显示错误

python - 并行迭代 pandas df