【问题标题】:python: Using recursionpython:使用递归
【发布时间】:2017-07-04 18:14:05
【问题描述】:

我最近被要求使用递归逻辑打印一个嵌套元组。我不确定递归。 我刚学python,对这个话题很陌生,请解释一下。

这是给我的问题。

使用递归在单独的行中打印嵌套元组:

Print (1,2,('a', 'b', (6,9,7)), 6,('$','@'))                        

每个项目都应该打印在一行中

【问题讨论】:

  • 请发布您的代码尝试。
  • x = (1,2,('a', 'b', (6,9,7)), 6,('$','@')) 对于 x 中的 y:打印 y
  • 如果你想要递归,你需要一个函数。首先编写一个接受tuple 作为参数的函数,然后打印每个元组条目。

标签: python recursion tuples


【解决方案1】:

如果你真的想使用递归,你可以使用这样的东西:

def print_recursive(base_element):                                
     if hasattr(base_element, '__iter__'):
         for element in base_element:
             print_recursive(element)
     else:
         print(base_element)
print_recursive((1,2,('a', 'b', (6,9,7)), 6,('$','@')))

【讨论】:

  • 你能解释一下这条线是做什么的吗? if hasattr(base_element, 'iter'):
  • @dino110 :我想你指的是第二行。它主要检查base_element 是否可迭代(列表、元组、字典...)
  • 好的,我刚试过,它进入了无限循环 cursion ......recursionExample.py",第 4 行,在 print_recursive print_recursive(element)
  • 如果我不使用递归什么是差异方法,我没有使用函数 hasattr
  • @dino110 这意味着您的文件中有错误。当我运行这个示例时,它可以工作。
猜你喜欢
  • 1970-01-01
  • 2011-05-13
  • 2019-04-10
  • 2016-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多