条件が正しく満たされていない場合、どうすればPython ifステートメントの先頭に移動できますか。
私は次のような基本的なif/elseステートメントを持っています:
print "pick a number, 1 or 2"
a = int(raw_input("> ")
if a == 1:
print "this"
if a == 2:
print "that"
else:
print "you have made an invalid choice, try again."
私が欲しいのは、プログラム全体を再起動しなくても、このifステートメントに対して別の選択をするようにユーザーに促すことですが、Pythonは非常に新しく、どこでもオンラインで答えを見つけるのに問題があります。
これを行うためのかなり一般的な方法は、無期限に実行されるwhile True
ループを使用し、入力が有効なときにbreak
ステートメントを使用してループを終了することです。
print "pick a number, 1 or 2"
while True:
a = int(raw_input("> ")
if a == 1:
print "this"
break
if a == 2:
print "that"
break
print "you have made an invalid choice, try again."
ここには、再試行の回数を制限するための優れた方法もあります。次に例を示します。
print "pick a number, 1 or 2"
for retry in range(5):
a = int(raw_input("> ")
if a == 1:
print "this"
break
if a == 2:
print "that"
break
print "you have made an invalid choice, try again."
else:
print "you keep making invalid choices, exiting."
sys.exit(1)
Whileループを使用します。
print "pick a number, 1 or 2"
a = None
while a not in (1, 2):
a = int(raw_input("> "))
if a == 1:
print "this"
if a == 2:
print "that"
else:
print "you have made an invalid choice, try again."
再帰関数を使用できます
def chk_number(retry)
if retry==1
print "you have made an invalid choice, try again."
a=int(raw_input("> "))
if a == 1:
return "this"
if a == 2:
return "that"
else:
return chk_number(1)
print "Pick a number, 1 or 2"
print chk_number(0)