无法使用break语句

-1 python string break

a=str(raw_input('Enter the word \n'))
def back_word(m):
    b=len(m)
    d=b-1
    print m[d]
    if d>0:
        back_word(m)
        d-1
    else:
        break


print back_word(a)
Run Code Online (Sandbox Code Playgroud)

我的目标是取一个字符串并向后打印字母,每行一个.我在循环错误之外得到了休息.任何人都可以更正我的代码并给出错误的原因吗?

Ter*_*ryA 5

你误解了这个break陈述.

break用于打破循环:是while循环还是for循环.

如果你想要打破一个功能,只需使用return.这是短暂的return None.函数返回后,它会中断.

if d > 0:
    back_word(m)
    d - 1
else:
    return
Run Code Online (Sandbox Code Playgroud)

此外,不要指望d - 1做任何事情:p.如果要从中删除1 d,请使用d -= 1.这相当于d = d - 1.

并且raw_input()已经返回一个字符串,所以str(raw_input(...不需要这样做:).

最后一件事,你忘了在递归调用函数时切割字符串.如果你不这样做,你会得到一个RuntimeError:

if d > 0:
    back_word(m[:-1])
    d -= 1
else:
    return
Run Code Online (Sandbox Code Playgroud)