反转字符串的方法

loc*_*boy -2 python string

嗨,我正在尝试使用以下代码反转字符串.有谁看到这里的错误?

def reverse(string):
    length = len(string)
    last = length -1
    middle = length/2
    newstring = []
    for i in range(middle):
            newstring[i] = string[last -i]
            newstring[last -i] = string[i]
    return ''.join(newstring)
Run Code Online (Sandbox Code Playgroud)

NPE*_*NPE 5

有多个错误:

  1. 您无法索引到空列表:newstring[i]newstring[last -i].
  2. 您总是成对添加字符,因此结果(如果其他错误是固定的)总是具有偶数长度,即使输入字符串具有奇数长度.

可能会有更多.

最后,我认为你让自己太难了:

In [1]: 'abcdef'[::-1]
Out[1]: 'fedcba'
Run Code Online (Sandbox Code Playgroud)

这使用切片语法,即start:stop:step.通过省略startstop我们取整个字符串,step=-1只是意味着我们以相反的顺序取字符.