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