2016-08-22 9 views
1

インデントに4つのスペースを使用していますが、構文エラーが表示されます。テキストエディタでインデントを使用するとうまく動作します。テキストエディタはブロックを1つしか作成せず、編集できません。スペースはインデントとして使用できませんか?インデント用に4つのスペース - 構文エラー

def replace_line(file_name, line_num, text): 
    try: 
      lines = open(file_name, 'r').readlines() 
      lines[line_num] = text 
      out = open(file_name, 'w') 
      out.writelines(lines) 
      out.close() 
     if not var and not var2: 
      return 

if var行に構文エラーが表示されます。

+1

エラーをスローするコードを入力してください。一般に、スペースは完全に問題ありません。 – Karin

+2

説明から、タブとスペースが混在しているようです。 –

答えて

6

あなたはので、それはおそらくあなたのコードがTABSSPACESインデントの方法としての両方が含まれているという事実に関連しているくぼみの構文エラーを取得している場合。コードは左から同じ量だけインデントされているように見えますが、のTABは単一のシンボルですが、のスペースを使用する同じインデントでは、4つのシンボルが使用されます。 Pythonは、あなたが見ているコードのレンダリングを見ることができず、行の前に使用されているシンボルの数が一貫していないことを知り、エラーをスローします。

これを修正するには、まずすべてのタブを適切なスペースに置き換えてから、コード内を移動してコード内のすべてのインデントが有効で正しいことを確認します。 Sublime Textのようなエディターを使用している場合は、1-2回のクリックでこれを行うことができます。より初期のエディターで TAB/SPACEの違いがはるかに面倒かもしれません。

希望これは、例外を投げる

+0

残念ながら、エラーは依然として続きます。 – Dzrte4gle

+0

インデントを確認します。 readlines()は2回ではなく3回インデントされます( 'def'の場合は1、' try'の場合は1)。 –

0

を支援します。パスは、それを解決します。テキストエディタからインデントを使用する場合は必要ありません。それは変だ。

関連する問題