x = 25
epsilon = 0.01
step = 0.1
guess = 0.0
while guess <= x:
if abs(guess**2 -x) >= epsilon:
guess += step
if abs(guess**2 - x) >= epsilon:
print('failed')
else:
print('succeeded: ' + str(guess))
数値の平方根を計算しようとするこのPythonプログラムが与えられました。x
です。なんらかの理由で、このプログラムは無期限にループします。なぜこのPythonプログラムは無期限にループしますか?
は、guess
のみ有限に多くの値があり、なぜなら後guess>x
(すなわちguess>=25.1
は,, while
ループは、その後停止したとき)。プログラムの途中でwhile
コマンドがループする唯一のものなので、何が起こっていますか?
がでいくつかのprint文を入れて、だから何がとき '推測= 5.0'起こる – scrappedcola
を見つける起こって見るものでしょうか?あなたの 'if'文は一致しませんが、'推測<= x'はまだ真です。 –
推測がイプシロン内にある場合は、ループを停止しません。 – BrenBarn