2016-04-19 38 views
-1

我想弄清楚如何使用for循環創建反轉字符串。這是我的理解,這不是最有效的方法,但我的任務的參數指定你必須使用for循環。我有什麼似乎應該工作,但我不斷收到錯誤:「TypeError:'str'對象不可調用」爲「第7行,在ReverseString test2 = test1(n)」。Python - 使用For循環創建反轉字符串

def ReverseString(test1): 
    global test2 
    test2 = "" 
    for n in range (len(test1)-1, -1, -1): 
     test2 = test1(n) 
     print (test2) 
     return test2 

#Input 

test1 = input("Enter a string to test if it is a Palindrome: ") 

ReverseString(test1) 
+1

TypeError告訴你究竟是什麼以及問題出在哪裏。 'test2 = test1(n)'會發生什麼? – SQLnoob

回答

3

你試圖調用字符串作爲您在錯誤消息看到你想test1(n)指數字符串做test1[n]

另外,您的返回位於您希望它在外的循環內,並且您希望使用+=來連接,而不是在每次迭代中重新分配它。

我假設這是一個練習,這就是爲什麼你這樣做迭代。然而,爲了完整起見扭轉字符串你可以做test1[::-1]

1
def ReverseString(test1): 
    test2 = "" 
    for i in range (len(test1) - 1, -1, -1): 
     test2 += test1[i] 
    return test2 

test1 = input("Enter a string to test if it is a Palindrome: ") 

print(ReverseString(test1)) 

調用一個字符串是沒有意義的,你要的是每個字符追加從test1test2,和你的回報一定是外循環