有人可以帮我理解为什么以下功能不打印字符串的反向?我做错了什么?
def myReverse(data):
for index in range( len(data)-1, -1, -1 ):
return data[index]
print( data[index] )
myReverse('blahblah')
答案 0 :(得分:2)
当你在函数中进行return
调用时,控件返回到父(执行函数),在return
之后忽略函数范围内的代码。在您的情况下,这就是为什么print
没有被您的代码执行。
在print
之前移动包含return
的行,并将return
移至for
循环之外。那么你的代码应该可以工作。
<强>建议:强>
有一种更简单的方法可以使用::-1
来反转字符串。例如:
>>> my_string = 'HELLO'
>>> my_string[::-1]
'OLLEH'
答案 1 :(得分:1)
您在打印前返回。所以行print( data[index] )
永远不会被执行。
下面的代码将工作得很好。
def myReverse(data):
for index in range( len(data)-1, -1, -1 ):
print( data[index] , end = '')
请注意,这是一个python3解决方案。 Python2中的print
不能像那样工作。
因此,在python2中获得相同的效果,首先从print
导入__future__
。
from __future__ import print_function
然后,和上面一样。
答案 2 :(得分:1)
简介:一旦遇到for
语句或return
语句或存在异常,break
循环的执行将停止。
在第一次迭代中遇到语句后,您有return
语句使for
循环停止(将控制权返回给调用方)。
将return
语句移到for
循环