我试图使用递归来编写一个遍历列表的程序,该递归计算列表中有多少个浮点变量。
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?
答案 0 :(得分:0)
string
&#34;本地&#34;为每个功能运行。因此,在运行1
和3
的代码时,它是空的。如果你需要计算浮点数,字符串就是坏容器。您应该使用整数并将其传递给下一个调用,因此函数应该接受列表和计数器状态。