我对Python很陌生,正在学习递归作业。我面临的问题是如何使用递归打印数字。
例如,函数printNumbers(12345)
的输出结果应为:
1
2
3
4
5
我将如何使用递归来做到这一点?我的基本情况是什么?
任何反馈将不胜感激!
答案 0 :(得分:1)
如果要打印此输出,则需要使用for循环范围控件(在此开始和结束)进行此操作。这是一个在线python解释器来阅读此内容。 http://mathcs.holycross.edu/~kwalsh/python/
for x in range(1, 6):
print(x)
答案 1 :(得分:0)
很抱歉造成混乱-我想我已经解决了。为了进行赋值,我必须使用递归,否则,我会使用范围。
def printNums(numbers):
numbers = str(numbers)
if len(numbers) <= 1:
print(numbers)
else:
print(numbers[0])
printNums(numbers[1:])
printNums(12345)
感谢您的反馈!非常感谢。
答案 2 :(得分:0)
一种递归方式:
def printNumbers(n):
if n:
temp = n % 10
printNumbers(n // 10)
print(temp)
printNumbers(12345)
1
2
3
4
5
基本情况为n == 0
。对于其他任何事情,请使用模数运算符获取最右边的数字,并将其存储在临时变量中,以供以后打印。然后使用n // 10
作为自变量进行递归,以除去最右边的数字。当基本案例返回其调用范围时,一切都将在返回到调用范围的过程中以相反的方式打印。
temp = 5
temp = 4
temp = 3
temp = 2
temp = 1
base case, do nothing
print 1
print 2
print 3
print 4
print 5
这里是repl。