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

Python SyntaxError:ループ内で正しく続行されない解決策

continueキーワードは、プログラムの順序をループ内の次の反復に移動します。 forループまたはwhileループの外でcontinueステートメントを使用すると、SyntaxError: continue not properly in loop エラーが発生します。

このガイドでは、このエラーの意味と、このエラーが発生する理由について説明します。このエラーの例を説明しているので、どのように機能するかを理解できます。

SyntaxError:ループ内で正しく続行されません

continueステートメントを使用すると、forループまたはwhileループの次の反復に進むことができます。 breakステートメントのようなcontinueステートメントは引数を取りません。彼らはプログラムの中で独立しています。

ループ内でのみcontinueステートメントを使用できます。これは、continueステートメントがループで表示されるように設計されているためです。継続ステートメントを使用して、プログラムにcontinueするように指示することはできません。 キーワードが続行する必要があるものを解釈するためのコンテキストがないため、ループの外側。

継続ステートメントは、そのコードブロックがループ内にある限り、ifステートメントまたは別のコードブロック内に表示できます。

シナリオ例

コーヒーハウスの在庫管理システムへの入力を検証するプログラムを作成しましょう。入力が有効であるためには、少なくとも3文字が含まれている必要があります。

まず、ユーザーに、システムに入力する製品の名前を挿入するように依頼しましょう。

product_name = input(“Enter the product name: ”)

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

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

次に、この応答を検証しましょう。 ifステートメントを使用して、入力の長さが3文字以上であることを確認します。

if len(product_name) < 3:
	print("Product names must be at least three characters long.")
	continue
else:
	break

print("Your product name is valid.")

ユーザーが3文字未満の製品名を挿入すると、メッセージがコンソールに出力されてから、continueステートメントが実行されます。それ以外の場合は、breakステートメントが実行されます。 len()メソッドを使用して、製品名の長さを取得します。

製品名が有効な場合は、その旨を通知するメッセージがコンソールに表示されます。

バリデーターを作成したので、コードを実行する準備が整いました。プログラムを実行するとどうなるか見てみましょう。

 File "main.py", line 3
	continue
	^
SyntaxError: 'continue' not properly in loop

コードはエラーを返します。

ソリューション

継続ステートメントを使用して、特定の条件が満たされた場合に続行するようにプログラムに指示しました。 ifステートメントでcontinueステートメントを使用できますが、continueステートメントはループ内のどこかに表示される必要があります。

プログラムではループを使用しないため、continueの使用はやや逆効果になります。さらに、continueを使用しているため、エラーが発生します。このエラーを修正するには、コードをループで囲む必要があります。

while True:
	product_name = input("Enter the product name: ")

if len(product_name) < 3:
	print("Product names must be at least three characters long.")
	continue
else:
	break

print("Your product name is valid.")

コードに1つの変更を加えました。これで、すべてのプログラムがwhileループ内にあります。これは、ループが停止するまで、ユーザーに製品名の入力を求めるプロンプトが表示されることを意味します。

ユーザーが有効な製品名を挿入した場合にのみ、ループが停止します。それ以外の場合は、メッセージがコンソールに出力され、ループが再度繰り返されます。

プログラムを実行して、何が起こるか見てみましょう。

あなたの製品名は有効です。

製品名を入力してください:ルワンダ

コードは正常に実行されます。無効な製品名でコードを実行してみましょう。

製品名を入力してください:RW

製品名は3文字以上にする必要があります。

製品名を入力します。

私たちのプログラムは、製品名が無効であることを通知し、別の製品名を挿入するように促します。

結論

SyntaxError: continue not properly in loop forループまたはwhileループの外でcontinueステートメントを使用しようとするとエラーが発生します。このエラーを修正するには、コード内のcontinueステートメントをループ内で囲みます。

これで、プロのようにこのエラーを修正するために必要な知識が得られました。


  1. Pythonの演算子ではないものは何ですか?

    Pythonではメンバーシップではありません演算子は、演算子のいずれかの側の変数が同じオブジェクトを指している場合はfalseと評価され、そうでない場合はtrueと評価されます。例- >>> a = 10 >>> b = 20 >>> id(a), id(b) (1581561184, 1581561504) >>> a is not b True 変数aとbのid()は異なるため、演算子はtrueを返しません。

  2. Pythonの演算子には何がありませんか?

    Pythonでは、「not in」メンバーシップ演算子は、指定されたシーケンスで変数が見つからない場合はtrueと評価され、それ以外の場合はfalseと評価されます。例 >>> a = 10 >>> b = 4 >>> l1 = [1,2,3,4,5] >>> a not in l1 True >>> b not in l1 False aはl1に属していないため、aはbに含まれていません Trueを返します 。ただし、bはl1にあるため、bはl1にありません Falseを返します