Python 此代码在3.4中运行,但在2.7中出现错误

Python 此代码在3.4中运行,但在2.7中出现错误,python,python-2.7,Python,Python 2.7,我已经为割线法编写了一个算法。代码在3.4中运行良好,但在2.7中它给出了str和float串联的错误。但是,通过使用str函数,它不会给出串联错误,但会给出float除法错误 import random import math def secant(x, y, f): count_iterations = 0 negligible_val = 0.000001 while abs(f(y)) > negligible_val: z = x - ((

我已经为割线法编写了一个算法。代码在3.4中运行良好,但在2.7中它给出了strfloat串联的错误。但是,通过使用
str
函数,它不会给出串联错误,但会给出
float
除法错误

import random
import math
def secant(x, y, f):
    count_iterations = 0
    negligible_val = 0.000001
    while abs(f(y)) > negligible_val:
        z = x - ((y - x)/(f(y) - f(x))) * f(x)
        x = y
        y = z
        count_iterations += 1
    return y
x,y = random.uniform(0.1, 10.0), random.uniform(0.1, -10.0)
= input("Enter the function in brackets to find the roots: ")
#remember to put the input in the brackets
#example (x**3-x-11)
pars_text = "lambda x: " + str(input_func)
result = eval(pars_text)
roots = str(secant(x, y, result))
print("Roots are: " + roots)

您的代码不可能同时在这两种模式下运行,
input
在这两种模式下执行两种截然不同的操作,
/
在这两种模式下的行为也不同both@PadraicCunningham什么是兄弟?如何在2.7中更改它?
来自未来导入部门
并使用
原始输入
@padraiccnningham我知道原始输入,但什么来自未来导入部门?它不会降低,即4/3=1.333。。。。不是1