【发布时间】:2020-07-05 03:21:44
【问题描述】:
我是一个初学者,我开始学习“while”语句循环来执行迭代。但是,早些时候我了解了“if/else”语句以及如何通过返回变量来使用 if/else 执行递归。下面是一个使用 while 语句的简单倒计时函数:
def countdown(n):
while n > 0:
print(n)
n = n-1
print('Blast off!')
为了比较,这里有一个使用 if/else 和递归的简单倒计时函数。
def countdown(n):
if n > 0:
print(n)
return countdown(n-1)
elif n < 0:
return None
else:
print('Blast off!')
return
如您所见,这两个函数做的事情几乎完全相同,唯一的区别是 if/else 语句说明了 n
我的问题是,看看如何在 if/else 语句和 while 语句中完成相同的事情,反之亦然,我想知道它们有明显区别并且一个明显优于另一个的情况.我遗漏的两种类型的陈述之间是否存在细微的概念差异,或者它们在用法上是否可以互换?
【问题讨论】:
-
递归在很多情况下都很有用,你听说过二进制排序吗?它比传统的列表线性排序要好,而且效率更高。都是因为它的递归算法。
-
这里有一些很好的讨论:softwareengineering.stackexchange.com/questions/182314/…。请注意,在实践中,某些语言/环境可以为您做出此选择。
标签: python if-statement while-loop