zsc123xyz147 发表于 2021-4-1 15:12:14

Python课后作业之递归

result = []
def get_digits(n):
    if n > 0:
            result.insert(0, n%10)
            get_digits(n//10)

    print(result)

运行这一段代码,然后输入get_digits(123456),会打印七次,我只想它打印一次,请问怎么解决这个问题

LuLD 发表于 2021-4-1 15:17:18

print(result)#把打印放在函数调用之后

result = []
def get_digits(n):
    if n > 0:
            result.insert(0, n%10)
            get_digits(n//10)

get_digits(123456)
print(result)#把打印放在函数调用之后

zsc123xyz147 发表于 2021-4-1 15:39:43

LuLD 发表于 2021-4-1 15:17
print(result)#把打印放在函数调用之后

感谢回答。不过如果是想先运行,再输入get_digits(123456),然后输出结果,就像最开始的数字游戏那样(第2讲课后作业,要求用户输入1到100之间数字并判断,输入符合要求打印“你妹好漂亮”,不符合要求则打印“你大爷好丑”),那可以怎么修改这一段代码

LuLD 发表于 2021-4-1 15:49:09

zsc123xyz147 发表于 2021-4-1 15:39
感谢回答。不过如果是想先运行,再输入get_digits(123456),然后输出结果,就像最开始的数字游戏那样(第 ...

可以的,但是我不知道你的判断条件是什么?

def get_digits(n):
    if n > 0:
            result.insert(0, n%10)
            get_digits(n//10)



result = []
get_digits(123456)

temp_a = int(input("输入1-100之间随机一个数字:"))

if 判断条件为真:
    print("你妹好漂亮")
else:
    print("你大爷好丑")

zsc123xyz147 发表于 2021-4-1 16:07:51

LuLD 发表于 2021-4-1 15:49
可以的,但是我不知道你的判断条件是什么?

不好意思哈,刚刚我没有表达清楚。就我想的是先在file里面按f5运行这段代码,然后就到了shell界面,我输入一个get_digits(123456),出来一行,但现在的结果是出来了七行。

zsc123xyz147 发表于 2021-4-1 16:09:08

LuLD 发表于 2021-4-1 15:49
可以的,但是我不知道你的判断条件是什么?

刚开始学,一脸懵{:10_261:}

LuLD 发表于 2021-4-1 16:10:21

zsc123xyz147 发表于 2021-4-1 16:07
不好意思哈,刚刚我没有表达清楚。就我想的是先在file里面按f5运行这段代码,然后就到了shell界面,我输 ...

你看看

def get_digits(n):
    if n > 0:
            result.insert(0, n%10)
            get_digits(n//10)



result = []
get_digits(int(input("输入:")))
print(result)


输入:123456

>>>

zsc123xyz147 发表于 2021-4-1 16:14:31

LuLD 发表于 2021-4-1 16:10
你看看

对对对,就是这个,我一开始做的时候是朝着你这个做的,但是没做出来,只做出了参考答案那样。感谢大佬的耐心指导{:10_254:}

LuLD 发表于 2021-4-1 16:25:07

zsc123xyz147 发表于 2021-4-1 16:14
对对对,就是这个,我一开始做的时候是朝着你这个做的,但是没做出来,只做出了参考答案那样。感谢大佬的 ...

过奖过奖,共勉共勉{:5_110:}
页: [1]
查看完整版本: Python课后作业之递归