尝试使用递归在列表中查找浮点变量

时间:2018-02-18 21:24:00

标签: python python-3.x recursion floating-point

我试图使用递归来编写一个遍历列表的程序,该递归计算列表中有多少个浮点变量。

def recFloatCount(lst):
string = ''
if len(lst) <= 0:
    return  
else:
    if type(lst[0]) == float:
        string = string + str(lst[0])  
recFloatCount(lst[1:])
print(len(string)) 

这应该起作用的方式是程序将通过列表,将每个浮点数添加到字符串,然后打印字符串的长度。但是,当我使用

运行程序时
recFloatCount([1, 2.0, 3]) 

它返回

0
3
0

我怎样才能得到它所以只打印1?

1 个答案:

答案 0 :(得分:0)

  1. 这个任务是使用递归的一个非常糟糕的地方。但我们假设你真的需要
  2. 正在创建变量string&#34;本地&#34;为每个功能运行。因此,在运行13的代码时,它是空的。如果你需要计算浮点数,字符串就是坏容器。您应该使用整数并将其传递给下一个调用,因此函数应该接受列表和计数器状态。