def a():
#function
if "b" in c:
a()
else:
#proceed
我能这样做吗?
答案 0 :(得分:3)
是的,你可以做到。这将是一个递归函数。一个例子:
def pow(x, n):
if n == 0: #this if makes the function stop calling itself
return 1
else:
return x * pow(x, n-1)
print(pow(2, 3))
>>> 8
递归是一种编程或编码问题的方法,其中函数在其体内调用自身一次或多次。通常,它返回此函数调用的返回值。如果函数定义满足递归条件,我们将此函数称为递归函数。
答案 1 :(得分:1)
是的,你可以。它被称为递归函数。例如,考虑以下程序。
def a(num):
if num % 2 == 0:
print(num)
else:
num+= 1
a(num)
a(num)
函数接受整数。如果它可被2整除,则打印该值,否则增加变量num
并使用新输入调用自身。
>>> a(3)
4
>>> a(5)
6
>>> a(6)
6
答案 2 :(得分:-5)
原因你可以,就是递归函数,例如(删除一个目录,包括子目录和文件):
def removeDir(dirPath):
if not os.path.isdir(dirPath):
return
files = os.listdir(dirPath)
try:
for file in files:
filePath = os.path.join(dirPath, file)
if os.path.isfile(filePath):
os.remove(filePath)
elif os.path.isdir(filePath):
removeDir(filePath)
os.rmdir(dirPath)
except Exception, e:
print e