猫史档案馆


【Python作品分享】汉诺塔文字攻略(递归)(求找bug!!!)【求助帖】

用户:不知道干啥的小睿不知道干啥的小睿查看:1 回复:3 评论:1 创建时间:2022-04-19T13:33:28


【作品展示】

center_image

 

【作品介绍】

帮我找一下哪里出BUG了

 

【作品源代码】

def yidong(pan,qi,zhong):
    print(pan,qi+'-->'+zhong)   

def hannuo(up_to_down,pan_,A,B,C):
    if up_to_down==1:
        yidong(pan_,A,C)
    else:
        hannuo(up_to_down-1,pan_-1,A,C,B)
        yidong(pan_,A,C)
        hannuo(up_to_down-1,pan_-1,B,A,C)

hannuo(5,'A','B','C')

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 1下一页
千从千从

所以报错信息是?

点赞0


评论


千从千从

我不大确定,Python都忘了……

有可能是函数hannuo在定义时有5个参数,你返回的只有4个?

点赞1


评论


小麦做的面包小麦做的面包

你的意思应该是这个:

def yidong(qi, zhong):
    print(qi,'-->',zhong)

def hannuo(up_to_down,A, B, C):
    if up_to_down == 1:
        yidong(A, C)
    else:
        hannuo(up_to_down-1,A, C, B)
        yidong(A, C)
        hannuo(up_to_down-1,B, A, C)

hannuo(3,'A', 'B', 'C')

符合命名规范就是:(专有名词不要写拼音,自己去搜''xxx的英文是什么'')

def move(start,end):
    print(start,'-->',end)

def hanoi(num, A, B, C):
    if num == 1:
        move(A, C)
    else:
        hanoi(num-1, A, C, B)
        move(A, C)
        hanoi(num-1, B, A, C)

hanoi(3, 'A', 'B', 'C')

简洁一点就是:

def hanoi(num,a='A',b='B',c='C'):
    if num==1:
        print(a,'-->',c)
    else:
        hanoi(num-1,a,c,b)
        print(a,'-->',c)
        hanoi(num-1,b,a,c)
hanoi(3)

有帮助给个赞qwq

点赞1


评论