def funk(someString):
letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz"
if someString == "":
return 0
elif someString[0] in letters :
return 1 + funk(someString[1:])
else:
return 0 + funk(someString[1:])
someString="3joe3"
print(funk(someString))这是一个计算字符串中所有字母的函数。
所以我们在字母中定义了允许的字符。
我们定义字符串并调用函数。
在本例中,它将首先执行else:部件,因为第一个元素是一个数字。
然后,它将执行elif:,当它包含允许的字符并从那里移动时,它将从左边执行。
我的问题是字符串中的字符数是在哪里保存的?
发布于 2022-04-10 15:03:53
根据您提供的函数,它使用了递归特性,其中它在自身内调用相同的函数。在调用该函数时,它将返回添加到其他结果:
return 1 + funk(someString[1:])在此递归之后,通过以下方法感知:
if someString == "":她把所有加在一起的“回报”的总和还给了她。下面是一个示例,说明如何存储最终值或您所称的“字符数”。
def funk(someString):
letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz"
if someString == "":
return 0
elif someString[0] in letters :
return 1 + funk(someString[1:])
else:
return 0 + funk(someString[1:])
qtd = funk("HELLO JOAO")
print(qtd)发布于 2022-04-10 15:04:38
递归函数是函数调用自身的特例。对于第一次程序员来说,这个概念往往很难理解。
在您的情况下,返回值与创建一个非递归示例相同,其中返回的值包含在表达式中:
def f():
return 0
def g():
return 1 + f()
def h():
return 2 + g()
print(h())输出:
3
因此,在程序中的任何地方,我们都无法看到所计算的值分配给变量的位置。
Python,就像其他编程语言一样,使用一个隐藏变量来引用返回值。
https://stackoverflow.com/questions/71817731
复制相似问题