我编写了一个程序,用于计算在调用函数时输入的字符串中有多少' '
个单位空格或h
个字符:
def chars(s):
if not s:
return 0
else:
return (s[0] == 'h') + chars(s[1:])
致电chars('hello how are you here')
时
您将获得3
。
现在,我们要说e
和h
一起计算。 h
将返回3
,e
应返回4
。输出为(3,4)
。
我尝试了def chars(s, j=0)
并设置了一个计数器,但后来意识到,坚持,这与此处的任何事都没有关系,认为它毫无意义。我想,我该如何定义第二个变量是什么?因为我只想要1个字符串作为输入。
我完全迷失了如何包含第二个变量。
另外,只是将它扔出去,我会遵循与2个字符相同的规则来获得更多字符吗?或者会有不同的方式吗?
答案 0 :(得分:1)
这就是你想要的:
def count(s):
if not s:
return (0, 0)
else:
next_count = count(s[1:])
return ((s[0] == 'h') + next_count[0],
(s[0] == 'e') + next_count[1])
count("hello how are you here") # => (3, 4)
基本案例返回元组(0, 0)
,递归步骤查看下一个计数的两个值,并在必要时添加一个。
如果你想要超过2个字符,只需使元组更大(可能使用循环)。