2016-06-27 11 views
-5

私はまだPythonのハンドルを取得しており、オンラインチュートリアルを使用してREPEAT UNTILループを実装しようとしています。すべてが順番になっているようですが、構文エラーが発生していますが、私の構文ではエラーは絶対に見つかりません!誰か助けてくれますか?私のコードは、REPEAT UNTILループ構文エラー

while detvar != "SABRE": 
      REPEAT 
      detvar=input("Please Pass a Valid Detector or Parameter Set"); 
      UNTIL detvar = "SABRE" 

detvarは私の文字列変数で、最後の行の「detvar」のエラーです。

+4

'REPEAT'が有効なPythonキーワードであると言うチュートリアルへのリンクを提供してください。 – Kevin

+1

さようなら、おい!これは、Pythonではなく、パスカルのような構文です!コードの作成をやめ、最初に[docs](https://docs.python.org/3/)を読んでください! – ForceBru

+0

エラーメッセージも含めてください。 – MisterMiyagi

答えて

1

これはあなたが必要とするすべてである:

detvar = "" # allow for at least one iteration 
while detvar != "SABRE": 
    detvar=input("Please Pass a Valid Detector or Parameter Set") 

REPEATUNTILはPythonで有効な式ではありません。代わりに、元々持っていたものであるwhile condition != valueを使用します。

whileステートメントを使用すると、条件が満たされている限り、繰り返し処理を続けることができます。あるいは、条件を否定することによって何かが真になるまで繰り返すことができます。

したがって、while detvar != "SABRE":は、detvar"SABRE"に等しくなるまで、ループの本体(コロンの下に字下げされたすべて)を繰り返します。


編集:ブライアンオークリーのコメントに従い、 detvarは、ループ本体が少なくとも一度実行されるように "SABRE"ない値として初期化されます。

+1

これはまったく同じではありません。 repeatは少なくとも1回の反復を保証しますが、あなたの解はそうではありません(detvarが明示的に '" SABER "以外のものに設定されていない限り)。 –

+1

答えを使って、私はそれを働かせました。ありがとうございました! –

0

これは恐ろしい言葉遣いです。私はこのコードの目的が何であるか分かりませんが、私はこれを解読できるかどうかを見ていきます。

while devtar != "SABRE": 
    devtar = input("Please Pass.(whatever this is).. Set") 

devtar = "SABRE"が自動的にループを終了する必要があります。