2016-04-19 19 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)) 

は意味をなさない行うことができ、何が欲しいのはtest1からtest2に各文字を追加することで、あなたのリターンは、外でなければなりませんループ

関連する問題