python第23/24讲第1题
1. 写一个函数get_digits(n),将参数n分解出每个位的数字并按顺序存放到列表中。举例:get_digits(12345) ==>result = []
def get_digits(x):
if x >= 0:
result.insert(0,x % 10)
get_digits(x // 10)
number = int(input('请输入数字:'))
get_digits(number)
print(result)
哪里存在问题吗?我感觉跟答案一样啊……为什么会报错呢?
参考答案:
result = []
def get_digits(n):
if n > 0:
result.insert(0, n%10)
get_digits(n//10)
get_digits(12345)
print(result)
你应该是递归陷入死循环了吧 因为到最后,一定会除到0
你还设了个>=0,肯定会死循环。 result = []
def get_digits(x):
if x > 0:
result.insert(0,x % 10)
get_digits(x // 10) qiuyouzhi 发表于 2020-4-24 21:30
因为到最后,一定会除到0
你还设了个>=0,肯定会死循环。
找到问题啦,把>=改成了>之后正常运行了,谢谢你 老八秘制 发表于 2020-4-24 21:30
你应该是递归陷入死循环了吧
是的……谢谢提示……
页:
[1]