反转字符串时的UnboundLocalError

时间:2014-01-08 10:39:46

标签: python string split

def FirstReverse(str):


    chaine = str.split(' ');

     for i in range(len(chaine), -1):
       inverse = chaine[i]
   return inverse ;    

print FirstReverse(raw_input())

我想反转一个字符串,但我有一些困难,我收到此错误信息

  

UnboundLocalError:在赋值之前引用的局部变量'inverser'

3 个答案:

答案 0 :(得分:2)

您需要将负步骤参数传递给范围以获得反转范围列表。

range(len(chaine)-1, -1, -1)   #start from len(chaine)-1

因为range(len(chaine), -1)返回[],循环永远不会执行,inverse永远不会被定义。

对字符串进行反转的最简单方法是使用扩展切片表示法[::-1]

答案 1 :(得分:1)

您的for语句始终为false,只有在满足for循环条件时才会初始化inverse,因此代码不会到达inverse获取值的位置(并且由此得到定义/绑定)。您应该在始终执行的位置引入变量。

答案 2 :(得分:0)

更好地撤消列表的方法是使用to use slice notation a step of -1 {/ 3>}

def FirstReverse(s):
    words = s.split(' ')
    return words[::-1]

注意:

  1. str是内置的Python,避免重复使用
  2. 您不需要用分号结束语句;