0

次のスクリプトの何が問題なのか、誰か説明してもらえますか?

私はごく最近 Python でプログラミングを学び始めたので、これはここの経験者にとっては非常に些細なことかもしれませんが、調べて何が問題なのか教えてください。アイデアは、特定の文字列を逆にするスクリプトを作成することです。を使用してこれを行うより簡単な方法があることは理解してs[::-1]いますが、私は自分の方法でそれをやりたいと思っています。エラーはz、適切な方法で定義されていないことと関係がありますか? もしそうなら、それを修正する方法を教えてください。ありがとう!

def reverse(x):
    y = len(x)
    for i in range(y-1):
        z[i] == x[y - 1 - i]    
    return z
4

3 に答える 3

1

まず、あなたの最近のコメントから、あなたの python プログラムは bash スクリプトとして実行されると推測します。正しく実行するには、次の行を先頭に追加します。

#!/usr/bin/env python

次に、リバース機能があります。=他の人はすべて、等号演算子 ( ) ではなく代入演算子 ( ) を使用する必要があることを指摘しています==。しかし、zは定義されていないため、問題は解決しません。しかし、それをどのように定義すればよいのでしょうか? 文字列は不変であるため、文字列にすることはできません。そのため、しようとしているように文字列内の単一の文字を変更することはできません。

これとまったく同じアルゴリズムを使用することに決めた場合のpythonicの解決策は、をリストにし、のメソッドをz使用して、リスト内の文字を最後に単一の文字列に連結することです。しかし、私たちもまだ森から抜け出しているわけではありません。は0 から までのリストですが、そのリストにも含める必要があります。したがって、代わりに使用する必要があります。joinstringzrange(y - 1)y - 2y - 1range(y)

まとめると、次のコードが得られます。

def reverse(x):
    y = len(x)
    z = list(x) # Using the characters of x will give it the correct length
    for i in range(y):
        z[i] = x[y - 1 - i]
    return "".join(z)
于 2013-08-01T07:49:23.710 に答える