python - 在递归函数中收集参数

标签 python recursion python-3.x argument-passing

我目前正在学习 Python,但我在修改此函数以按我希望的方式工作时遇到了问题。这是一个从两个整数中找到 gcd 的递归函数。 data 是一个包含两个整数的元组。如何修改此递归函数以使用一个参数?

def gcd(data):
    a, b = data
    if b == 0: return a
    return gcd(b, a % b)

如果我这样执行,我得到

TypeError: checkio() 采用 1 个位置参数,但给出了 2 个

如果我尝试通过定义 def gcd(*data): 来收集参数,我会得到

ValueError:需要超过 1 个值才能解包

这可能吗?

最佳答案

你的函数需要一个变量(一个元组),但你传递了两个变量,试试这个:

return gcd((b, a % b))

关于python - 在递归函数中收集参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20151081/

相关文章:

python - 创建Conda环境但排除本地开发包?

c++ - 递归函数扫描字符串添加ASCII

python - 如何解码文件名

python - 用列值更新 pandas groupby group

python - 无法从 PIL 导入 PILLOW_VERSION

python - 提高 NeedDownloadError ('Need ffmpeg exe. ' NeedDownloadError : Need ffmpeg exe)

python - django 中 url 的排序

python - Yield Request调用在scrapy的递归方法中产生奇怪的结果

c - 数独 9 个盒子 ( 3x3 ) C 中的递归回溯所有组合

python - 组合来自 for 循环的响应并将它们导出到附加列中以 excel