无法使用break语句

时间:2013-06-30 06:01:05

标签: 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)

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

3 个答案:

答案 0 :(得分:5)

你误解了break声明。

break用于突破循环:它是while循环还是for循环。

如果您想要突破某个功能,只需使用return即可。这是return None的缩写。函数返回后,它会中断。

if d > 0:
    back_word(m)
    d - 1
else:
    return

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

并且raw_input()已经返回一个字符串,因此不需要执行str(raw_input(...:)。

最后一件事,你在递归调用函数时忘了剪切字符串。如果您不这样做,您将获得RuntimeError

if d > 0:
    back_word(m[:-1])
    d -= 1
else:
    return

答案 1 :(得分:2)

break用于提前结束循环。 return用于提前结束功能。虽然您正在处理的函数是循环(递归),但break语句在此上下文中不起作用。你需要这个:

if d>0:
    back_word(m)
    d-1
else:
    return

答案 2 :(得分:1)

我相信你误解了break命令。它用于提前结束循环。试试这个:

if d>0:
  back_word(m)
  d-1

else:
  return
祝你好运!