使用反向索引的字符串反转功能

时间:2016-09-26 09:01:20

标签: python

有人可以帮我理解为什么以下功能不打印字符串的反向?我做错了什么?

def myReverse(data):
    for index in range( len(data)-1, -1, -1 ):
        return data[index]
        print( data[index] )

myReverse('blahblah')

3 个答案:

答案 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循环

之外