[解決済み] python "break" エラー: ループ外でのブレーク
質問内容
最初のコードを開発したとき、私はこの問題に直面しました。
break
というコマンドを使って、エラー発生時にプログラムを再起動させようとしました。
コードを見ていただければ、より理解できるかと思います。
Name = str(input("Please enter Your Name:"))
Age = input("Please enter your age: ")
if Age != int():
print ("Error! Check the age")
break
elif Age == int():
continue
Height = input("Please enter your height: ")
if Height != int():
print ("Error! Check the Height")
break
elif Height == int():
continue
if Age == int() and Age >= 18 and Height == int() and Height >= 148:
print("You're able to drive a car " + (Name) )
elif Age == int() and Age < 18 and Height == int() and Height > 148:
print("You're not able to drive a car " + (Name) )
elif Age and Height != int() :
print ("Error! , Age or Height are not numbers")
のエラーが発生しました。
"C:³³,000,000(税込)³,000,000(税込)³,000,000(税込)³,000,000(税込)³,000,000(税込)³,000,000(税込)³,000,000円 ブレーク ^ シンタックスエラー:'break'
ループの外側
どのように解決するのですか?
その
break
文は、プログラムではなく、ループを終了するために使用されます。使用方法
sys.exit()
をインポートして、プログラムを終了させる必要があります。
sys
もあります。
EDIT
コメントへの回答ですが、私なら多分こうします。
while True:
inputted_name = input("Please enter your name:")
try:
name = str(inputted_name)
except ValueError:
print("Please enter a valid name")
else:
break
while True:
inputted_age = input("Please enter your age:")
try:
age = int(inputted_age)
except ValueError:
print("Please enter a valid age")
else:
break
while True:
inputted_height = input("Please enter your height:")
try:
height = float(inputted_height)
except ValueError:
print("Please enter a valid height")
else:
break
if age >= 18 and height >= 148:
print("You're able to drive a car {}".format(inputted_name))
if age < 18 and height > 148:
print("You're not able to drive a car {}".format(inputted_name))
というわけで、いくつか変更点があります。
ユーザー入力の各段階が独自のループになっています。try/except/elseステートメントを使って、入力を正しい型にキャストするようにしていますが、ただし
ValueErrors
(キャストできない場合にスローされます。ユーザーがテキストの答えを
input age
例えば 正しい型へのキャストに成功すると、ループは解除され、スクリプトは次の型に移行します。それぞれのループを分けておけば、ユーザーが間違った値を入力しても、全体をやり直す必要がありません。
また
format()
を挿入します。
name
を最終的な文字列に追加することで、文字列連結の手間を省くことができます。
また、ちょっとした注意点ですが、これはPython 3を使用していると仮定しています。しかし、もしあなたがPython 2を使用している場合
input()
は、次のように置き換える必要があります。
raw_input()
. Python 2 では
input()
はユーザー入力を式として評価しようとするのに対し
raw_input()
は文字列を返します。
関連
-
[解決済み】TypeErrorの修正方法。Unicodeオブジェクトは、ハッシュ化する前にエンコードする必要がある?
-
[解決済み】なぜ「LinAlgError: Grangercausalitytestsから「Singular matrix」と表示されるのはなぜですか?
-
[解決済み] プログラムの実行やシステムコマンドの呼び出しはどのように行うのですか?
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] Pythonで2つのリストを連結する方法は?
-
[解決済み] Pythonで例外を手動で発生(スロー)させる
-
[解決済み] Python 3で「1000000000000000 in range(1000000000000001)」はなぜ速いのですか?
-
[解決済み] pipでPythonの全パッケージをアップグレードする方法
-
[解決済み】Pythonに三項条件演算子はありますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
opencvとpillowを用いた顔認証システム(デモあり)
-
pythonを使ったオフィス自動化コード例
-
Python関数の高度な応用を解説
-
python string splicing.join()とsplitting.split()の説明
-
風力制御におけるKS原理を深く理解するためのpythonアルゴリズム
-
[解決済み】syntaxError: 'continue' がループ内で適切に使用されていない
-
[解決済み】 AttributeError("'str' object has no attribute 'read'")
-
[解決済み】Python: SyntaxError: キーワードは式になり得ない
-
[解決済み】django インポートエラー - core.managementという名前のモジュールがない
-
[解決済み] 変数が整数であるかどうかのチェック【重複あり