鱼C论坛

 找回密码
 立即注册
查看: 2482|回复: 8

[已解决]Python课后作业之递归

[复制链接]
发表于 2021-4-1 15:12:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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

    print(result)

运行这一段代码,然后输入get_digits(123456),会打印七次,我只想它打印一次,请问怎么解决这个问题
最佳答案
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
[1, 2, 3, 4, 5, 6]
>>> 
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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)#把打印放在函数调用之后
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-1 15:39:43 | 显示全部楼层
LuLD 发表于 2021-4-1 15:17
print(result)#把打印放在函数调用之后

感谢回答。不过如果是想先运行,再输入get_digits(123456),然后输出结果,就像最开始的数字游戏那样(第2讲课后作业,要求用户输入1到100之间数字并判断,输入符合要求打印“你妹好漂亮”,不符合要求则打印“你大爷好丑”),那可以怎么修改这一段代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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("你大爷好丑")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-1 16:07:51 | 显示全部楼层
LuLD 发表于 2021-4-1 15:49
可以的,但是我不知道你的判断条件是什么?

不好意思哈,刚刚我没有表达清楚。就我想的是先在file里面按f5运行这段代码,然后就到了shell界面,我输入一个get_digits(123456),出来一行[1 2 3 4 5 6],但现在的结果是出来了七行。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-1 16:09:08 | 显示全部楼层
LuLD 发表于 2021-4-1 15:49
可以的,但是我不知道你的判断条件是什么?

刚开始学,一脸懵
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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
[1, 2, 3, 4, 5, 6]
>>> 
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-1 16:14:31 | 显示全部楼层

对对对,就是这个,我一开始做的时候是朝着你这个做的,但是没做出来,只做出了参考答案那样。感谢大佬的耐心指导
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

过奖过奖,共勉共勉
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-9 17:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表