Discuss / Python / 有一个问题?

有一个问题?

Topic source

武熙远

#1 Created at ... [Delete] [Delete and Lock User]

对于Hanoi_Tower我添加了一个功能想显示出步骤数, 例如:STEP 01 A --> C 我的代码是这样的,

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

def Hanoi_Tower(n,a,b,c):
    L = []
    if n > 1:
        Hanoi_Tower(n-1,a,c,b)
    L.append("%s --> %s\n"%(a,c))
    if n > 1:
        Hanoi_Tower(n-1,b,a,c)
    for i,value in enumerate(L):
        print(i+1,':',value)

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

其实功能是实现了,但有一个问题。显示结果是:

1 : A --> C

1 : C --> B

1 : A --> B

1 : B --> A

1 : A --> C

1 : B --> C

1 : A --> C

当然我可以用其他方法实现i的正确显示,但是我想知道为什么对enumerate(L)提取序号不生效呢?

谢谢!

武熙远

#2 Created at ... [Delete] [Delete and Lock User]

哦!是我弄错了。。。。

请教,遇见了和你一样的问题,为什么i不能递加呢?

把L设成全局变量,把打印部分放到函数外面


  • 1

Reply