2016-05-07 6 views
0

異なるために、私は実際には正確に同じですが、異なる順序であるコードの2つのバージョンを持って、私はのPython:インデントエラー、方法は

を理解していない、このPythonのインデントのエラーを取得しています。 1つは動作しますが、もう1つは動作しません。どうしてか分かりません。

これは動作しないバージョンです:

Error message: "File "/Users/HonghuiChoi/Desktop/helloworld/main.py", line 28 def get(self): ^IndentationError: unindent does not match any outer indentation level"

class MainPage(webapp2.RequestHandler): 

    def write_form(self, error=""): 
     self.response.write(form % {"error":error}) 

    def get(self): #THIS IS THE LINE THAT COMPLAINS 
     self.write_form() 

    def post(self): 
     user_month = valid_month(self.request.get('month')) 
     user_day = valid_day(self.request.get('day')) 
     user_year = valid_year(self.request.get('year')) 

     if not (user_month and user_day and user_year): 
      self.write_form("invalid date!") 
     else: 
      self.response.write("valid day.") 

そして、この作品のバージョンである:あなたの中に入ると、私は、あなたのコードを見ると

class MainPage(webapp2.RequestHandler): 

    def get(self): 
     self.write_form() 

    def write_form(self, error=""): 
     self.response.write(form % {"error":error}) 

    def post(self): 
     user_month = valid_month(self.request.get('month')) 
     user_day = valid_day(self.request.get('day')) 
     user_year = valid_year(self.request.get('year')) 

     if not (user_month and user_day and user_year): 
      self.write_form("invalid date!") 
     else: 
      self.response.write("valid day.") 
+3

と言っていますインデントのスペースとタブ文字が混在していないか確認しましたか? –

+0

これはとても奇妙です。これまで働いていたバージョンはもう動作しません。私はスペースを使用しなかった、私はインデントにタブを使用しました。 – Nayana

+0

次に、すべてのタブをスペースで置き換えてください。私が読んだことはすべてインデント用のタブ文字を避けることを強くお勧めします。 –

答えて

1

質問には、インデントにスペースとタブ文字が混在しています。

コードをコピーし、コードを表示するために余分なインデントを追加すると、これらの変更が行われている可能性がありますが、元のコードで注意深く確認する必要があります。 Pythonチュートリアル(IIRC)は、他のドキュメンテーションとともに、スペースだけを使用することを強くお勧めします。すべてのタブをスペースで置き換えてください。

追加:私は、PythonチュートリアルではなくPEP 8を思い出していたことがわかりました。 PEP 8は

+0

あなたは正しいです。コードのすべての行が並んでいるように見えました。しかし、すべての行を左に移動した後、インデントするタブを使用して、それがどんな順序であっても機能します。 – Nayana

+0

ありがとうございました。 – Nayana

+0

簡単な質問ですが、私のコードにタブとスペースが混在していることをどうやって知ったのですか?私はその外観からは分かりませんでした。 – Nayana

関連する問題