Я сделал простую функцию под названием «Приблизь», которая умножает два числа вместе, а затем делит их на два. Когда я использую функцию сам по себе, она отлично работает, но кажется, что в конусе кода у меня она не делит число пополам, и я понятия не имею, почему. Это мой код, где ошибка, и как я могу ее исправить?Число отказывается делиться
import math
def Approx(low,high):
base = low * high
return base/2
root = float(input("What to approx the sqrt of : "))
vague = float(input("How off can it be? : "))
wrong = True
oroot = root
root = math.floor(float(root))
trunk = root + 1
step = 0
while wrong:
if Approx(root,trunk) > oroot - vague and Approx(root,trunk) < oroot:
print("Done. " + str(step) + " steps taken.")
else:
if Approx(root,trunk) > oroot:
temproot = root
root = Approx(root,trunk)
trunk = temproot
step += 1
print("Step " + str(step) + " finished. Approx is " + str(Approx(root,trunk)))
else:
temptrunk = trunk
trunk = Approx(root,trunk)
root = trunk
step += 1
print("Step " + str(step) + " finished. Approx is " + str(Approx(root,trunk)))
if step > 50:
print("More than fifty steps required.")
wrong = False
Что заставляет вас думать, что деление не происходит? – user2357112
Если неправильное поведение встречается в 'Approx (root, trunk)> oroot - неопределенный и Approx (root, trunk) (oroot - неопределенный) и (Approx (root, trunk)
albert
Каков желаемый выход 'Approx'? Вспомните разницу между '5 // 2' (' 5 // 2 = 2') и '5/2' (' 5/2 = 2.5') в Python 3. В то время как в Python 2 это наоборот. – albert