Python
 Computer >> コンピューター >  >> プログラミング >> Python

Python SyntaxError:行継続文字の後の予期しない文字解決策

Python行継続文字を使用すると、プログラムの新しい行にコード行を継続できます。行継続文字の後に値を続けることはできません。

行継続文字の後に文字またはステートメントを指定すると、「構文エラー:行継続文字の後に予期しない文字」エラーが発生します。

このガイドでは、このエラーの意味と、エラーが発生する理由について説明します。このエラーの実際の例を2つ紹介し、コードでの使用方法を学習できるようにします。

SyntaxError:行継続文字の後に予期しない文字

行継続文字を使用すると、複数行のコードに長い文字列を書き込むことができます。この文字は、コードを読みやすくするので便利です。行継続文字は円記号(「\」)です。

非常に長いコード行を追跡するのは難しい場合がありますが、複数行に分割された1行のコードを追跡する方が簡単です。

行継続文字は通常、コードを分割したり、コードの複数の行に長い文字列を書き込んだりするために使用されます。

url = "https://careerkarma.com" \
      "/blog/python-syntaxerror-unexpected-character-after" \
      "line-continuation-character"

文字列を3行に分割しました。これにより、コードが読みやすくなります。

このエラーが発生する可能性がある2つのシナリオは次のとおりです。

参加者の81%は、ブートキャンプに参加した後、自分たちの技術的な仕事の見通しについてより自信を持っていると述べました。今日のブートキャンプにマッチしましょう。

平均的なブートキャンプの卒業生は、ブートキャンプの開始から最初の仕事を見つけるまで、キャリアの移行に6か月も費やしませんでした。

  • 除算演算子としてスラッシュの代わりにバックスラッシュを使用する
  • 改行文字を括弧で囲まずに文字列に改行を追加する

これらの各シナリオについて1つずつ説明します。

シナリオ#1:バックスラッシュを使用した除算

ここでは、人のボディマス指数(BMI)を計算するプログラムを作成します。まず、ユーザーに身長と体重をPythonプログラムに挿入するように依頼する必要があります。

height = input("What is your height? ")
weight = input("What is your weight? ")

次に、ユーザーのBMIを計算します。 BMI値の計算式は次のとおりです。

BMI = kg/m2

「kg」は、キログラム単位の人の体重です。 「m 2 」は、人の身長の2乗です。 Pythonに変換すると、BMIを計算する式は次のようになります。

bmi = float(weight) \ (float(height) * 2)
print("Your BMI is: " + str(bmi))

「重量」と「高さ」の値を浮動小数点数に変換して、それらに対して数学関数を実行できるようにします。

次に、ユーザーのBMIをコンソールに出力します。 str()メソッドを使用して「bmi」を文字列に変換し、「Your BMI is:」メッセージに連結できるようにします。 round()メソッドを使用して、「bmi」の値を小数点以下2桁に丸めます。

コードを実行してみましょう:

  File "main.py", line 4
	bmi = float(weight) \ (float(height) * 2)
                                        	^
SyntaxError: unexpected character after line continuation character

エラーが発生しました。これは、除算演算子として「/」記号の代わりに「\」を使用したためです。 「/」除算演算子を使用してコードを修正できます:

bmi = float(weight) / (float(height) * 2)
print("Your BMI is: " + str(round(bmi, 2)))

コードは次のようになります:

What is your height? 1.70
What is your weight? 63
Your BMI is: 18.53

私たちのコードは、ユーザーのBMIを正常に計算しました。

シナリオ#2:改行文字を誤って使用する

次に、材料のリストをファイルに書き込むプログラムを作成します。ショートブレッドレシピの材料リストを定義することから始めます:

ingredients = [
	"150g plain flour",
	"100g butter, chilled an cubed",
	"50g caster sugar"
]

次に、「shortbread_recipe.txt」というファイルを開き、そこに材料のリストを書き込みます。

with open("shortbread_recipe.txt", "w+") as ingredients_file:
	for i in ingredients:
		ingredients_file.write(i + \n)

このコードは、「成分」変数のすべての成分をループします。各材料は材料ファイルに書き込まれ、その後にPythonの改行文字(「\ n」)が続きます。これにより、各成分が新しい行に表示されるようになります。

Pythonコードを実行してみましょう:

  File "main.py", line 9
	ingredients_file.write(i + \n)
                             	^
SyntaxError: unexpected character after line continuation character

コードはエラーを返します。これは、改行文字を引用符で囲んでいないためです。

改行文字は特殊文字ですが、使用する場合は常に引用符で囲む必要があります。これは、Pythonが「\」を行継続文字として扱うためです。

コードのエラーを解決するには、改行文字を二重引用符で囲む必要があります。

with open("shortbread_recipe.txt", "w+") as ingredients_file:
		for i in ingredients:
			 ingredients_file.write(i + "\n")

コードを実行してみましょう。私たちのコードはコンソールに値を返しません。 「shortbread_recipe.txt」という新しいファイルが作成されます。その内容は次のとおりです。

150g plain flour
100g butter, chilled an cubed
50g caster sugar

コードにより、リストが「shortbread_recipe.txt」ファイルに正常に出力されました。

結論

行継続文字の後にコードを追加すると、「構文エラー:行継続文字の後に予期しない文字」エラーが発生します。

このエラーを解決するには、数学演算を実行している場合は、正しい除算演算子(スラッシュ)を使用していることを確認してください。改行文字など、円記号を含む特殊文字を使用している場合は、それらが引用符で囲まれていることを確認してください。

これで、コード内のこのエラーを修正する準備が整いました!


  1. PythonTkinterのメソッドの後

    TkinterはGUIを作成するためのPythonライブラリです。 GUIウィンドウやその他のウィジェットを作成および操作してデータやGUIイベントを表示するための多くの組み込みメソッドがあります。この記事では、afterメソッドがTkinterGUIでどのように使用されるかを見ていきます。 構文 .after(delay, FuncName=FuncName) This method calls the function FuncName after the given delay in milisecond ウィジェットの表示 ここでは、単語のリストをランダムに表示するフレームを作成しま

  2. Pythonの予期しないインデントとは何ですか?

    Pythonはインデントを主張するだけでなく、一貫したインデントを主張します。 1行を4スペースインデントし、次の行を3(または5、6、。)インデントすると、Pythonで予期しないインデントのエラーが発生します。 指定されたコードでは、3行目は2行目よりも先頭に多くのスペースがあります。ブロック内のコードのすべての行は、まったく同じ数のスペースで始まる必要があります。両方のprintステートメントは、同じ数のスペースでインデントする必要があります。したがって、予期しないインデントが表示されない修正されたコードは次のとおりです。 def a():     print &q