2017-08-06 16 views
-2

我在大学里学了一些编码类,并试图重新学习我失去的技能。我试图编写的程序接受一个字符串并向后返回该字符串:例如,“Nope”变为“epoN”。我只是想知道你是否能帮我弄清楚我的逻辑或语法究竟出了什么问题!想知道为什么这段代码不工作? python中的基本反转字符串

编辑:谢谢大家。我通过使可变lengthOfWord = len(字符串)来解决问题 - 1

另外我很抱歉我没有发布我的错误消息。我忘了这条规则,并且将来会这样做。再次感谢!

def ReverseString(string): 
    finalWord = "" 
    lengthOfWord = len(string) 
    while lengthOfWord >= 0: 
     finalWord = finalWord + string[lengthOfWord] 
     lengthOfWord = lengthOfWord - 1 
    else: 
     print(finalWord) 
    return 
+2

见https://stackoverflow.com/questions/18686860/reverse-a-string-without-using-reversed-or -1 – Ricardo

+1

Python具有基于0的索引。检查你的指数。 – randomir

+0

当你有一些代码返回错误时,你应该在你的问题中包含错误。你的逻辑或语法都不对,你只是因为索引而导致IndexError – Mel

回答

-1

python中列表式对象的索引是从零开始的。您使用字符串的长度来获取它的最后一个元素超出范围。你可以得到一个列表状物体的最后一个元素如下:

list_like_obj[-1] 
list_like_obj[length - 1] 

而且可以逆转的列表状物体使用切片,该对象的方法或内置函数:

list_like_ojb[::-1] 
list_like.obj.reverse() 
reversed(list_like_obj) 
-1
def ReverseString(string): 
    finalWord = "" 
    lengthOfWord = len(string) 
    while(lengthOfWord >0): 
     finalWord += string[lengthOfWord-1] 
     lengthOfWord -= 1 

    return finalWord 

简单的方法:

string[::-1] # string = abc ----> cba 
0

试试这个方法:

def ReverseString(string): 
    return string[::-1] 


print(ReverseString("Rezwan")) 

输出:

nawzeR 

或者你可以尝试:

def ReverseString(string): 
    finalWord = "" 
    lengthOfWord = len(string) - 1 
    while lengthOfWord >= 0: 
    finalWord = finalWord + string[lengthOfWord ] 
    lengthOfWord = lengthOfWord - 1 
    return finalWord 

print(ReverseString("Rezwan")) 
相关问题