2017-10-03 5 views
0

私は初心者で、コンマの最後の文字列を文字列で見つけようとしています。私は私のコードで以下に示すようにwhileループを使いたいと思います。簡単なロジックに苦しんでいるように思えるので、時にはコードを書くときに私は本当に不満を感じます。とにかく、私のコードはここにあります:文字列中のカンマの最後の位置はどのようにして見つけられますか?

# Find last occurrence of the comma 
    while True: 
     commaPos = newNameStr.find(",", 0) 
     if commaPos == -1: 
      return the commaPos before 

私は正しい道にいますか?私はUdacityからPythonコースを受け取りました。私たちも同様の問題を抱えていましたが、このように解決しましたが、コードの書き方は忘れてしまいました。

+0

str.rfind( "、") – Erdenezul

+0

ご協力ありがとうございます。 – johnnewbie25

+0

loop from end – Erdenezul

答えて

0

引数ゼロをcommaPos = newNameStr.find(",", 0)に与えているので、最初のカンマが無限ループになります。このcommaPos = newNameStr.find(",", commaPos)を試して、commaPosを0にリセットしてください。

+0

ありがとうございます。 whileループを完了する方法はまだ分かりません。特に私は私の「リターン」ステートメントを持っています。私の元々の考えは、findが-1を返して前に位置を取得したときにループを止めることでしたが、コードを書く方法はわかりません。 – johnnewbie25

+0

これは、最後のカンマの後に他の文字がある文字列に対して-1を返します。 'find()'の結果を別の変数に保存し、それが-1でない場合にのみ 'commaPos'に代入する必要があります。 –

+0

@ johnnewbie25ロジックは問題ありませんが、以前のカンマ位置の結果も保存する必要がありますが、findを呼び出す前に 'oldCommaPos = CommaPos'を設定することでこれを行うことができます。それ以外のロジックは動作しますが、唯一の問題はコンマがない場合、最初の文字列の位置に相当する0が得られます。これを考慮に入れてください。 – Mitchel0022

関連する問題