...
error33 = 2
while error33 > 1:
while True:
try:
survivalrateforjuveniles = float(input("Please enter the survival rate for poomen\n"))
break
except ValueError:
print("Please enter a number between 0 and 1")
continue
else:
error33 = 0
break
私は、あなたがやっている内容を正確に把握していない...しかし、私は私がこれに似たsomehtingを使用すると思う:
error33 = 2
survivalrateforjuveniles = -1.0
while error33 > 1:
while not (0 < survivalrateforjuveniles < 1):
survivalrateforjuveniles = input("Please enter the survival rate for poomen\n")
try:
survivalrateforjuveniles = float(survivalrateforjuveniles)
except ValueError:
survivalrateforjuveniles = -1
print("Please enter a number between 0 and 1")
print('do what you want')
error33 =0
あなたのソリューションとあまり違いはありませんが、break
は不要で、より頑丈に見えます。しかし、survivalrate...
と他の入力(あなたが持っていると思います)を読む関数を作ることは、同じコード行を2回以上使用しないので良いでしょう(良いソフトウェアを書く基本的な習慣の1つです) 。
「error33」は決して変更されませんか?その後、それは停止しません。 – fzzle
コードも作成しますか? – PortableGibbon
このコードでは多くのことが間違っています。 intをintにキャストする必要はありません。error33 = 2は問題ありません。あなたの状態は 'error33'にあります。これは決して変更されず、全く使われません。もう一方の中に2つの「中」があり、そのうちの1つは決して終わらない。あなたのループは 'survivalrateforjuveniles'が浮動小数点ではない場合にのみ壊れます。' survivalrateforjuveniles'が0と1の間の浮動小数点でなければ、あなたはそれを壊すことを望んでいるようです。 – Efferalgan