Я пытаюсь вычислить квадратный корень с использованием петель. Я не уверен, что не так с моим кодом, потому что он не распознает правильный ответ.проблемы с кодом при попытке вычислить sqroot, используя цикл while
x = 25.0
ans = 0.0
while ans**2 <= x:
ans += 0.5
if ans**2 == x:
print ans
print ans**2
else:
print "no square root"
print ans
print ans**2
Когда я бегу, он отображает следующий результат:
no square root
5.5
30.25
и нет, это не домашнее задание, Im 32yrs старая жизнь обучающийся
редактировать
Спасибо всем за ответы. Ive изменил код немного, Ive изменилось в то время как цикл, и если оператор, и мой код выглядит как этот
x = 25.0
ans = 0.0
while ans**2 < x:
ans += 0.2
if ans**2 != x:
print "root not found"
print ans
print ans**2
else:
print "found square root"
print ans
print ans**2
И когда я пытаюсь запустить его, он печатает следующий
root not found
5.0
25.0
Im puzzeld
'ans ** 2 <= x' =>' ans ** 2
Arman
Duplicate?http://stackoverflow.com/questions/295579/fastest-way-to-determine-if-an-integers-square-root-is-an-integer –
Проблема с отступом. Поместите if/else внутри вашего цикла. Вы запускаете все номера, которые хотите попробовать (выполнить весь цикл while), прежде чем пытаться их использовать! –