Python斜率(给出两个点找到斜率) - -answer works&没有工作;

时间:2017-01-04 11:11:40

标签: python function line

试图弄清楚在Python中返回一条线的斜率的函数。问题方向是找到给定斜率坐标的m的斜率。阅读其他几个堆栈溢出帖子,但似乎没有一个能够成为可行的解决方案。以下是我尝试过的各种变体:

def slope(x1, y1, x2, y2):
    m = 0
    b = (x2 - x1)
    d = (y2 - y1)
    if b != 0:
        m = (d)/(b) 

    return m

slope(2, 3, 6, 7)


def slope(x1, y1, x2, y2):
    m = 0
    a = float(x1)
    b = float(x2)
    c = float(y1)
    d = float(y2)
    m = (d-c)/(b-a)
    return m
slope(2, 3, 6, 7)

def slope(x1, y1, x2, y2):
    m = ''
    a = float(x1)
    b = float(x2)
    c = float(y1)
    d = float(y2)
    m = (d-c)/(b-a)
    return m

slope(2, 3, 6, 7)



def slope(x1, y1, x2, y2):
    m = 0
    b = (x2 - x1)
    d = (y2 - y1)
    if b == 0:

        m = None

    else: 

        m = (d)/(b) 

    return m


slope(2, 3, 6, 7)

def slope(x1, y1, x2, y2):
    m = (y2-y1)/(x2-x1)
    return m

slope(2, 3, 6, 7)

有一次,我收到了有关全球m的错误消息。我也试过制作一个" m = 0"在功能之外,但这没有帮助。还收到"AssertionError: 0 != 1"

我得到了正确答案,然后是第二行=>无,并且在提交系统时说它不正确。

2 个答案:

答案 0 :(得分:5)

你的数学是正确的,所以这不是问题所在。我通过添加print语句测试了所有功能,并且它们都正确返回1.0

您的系统是否要求您打印出返回的值?这样做。

def slope(x1, y1, x2, y2):
    m = (y2-y1)/(x2-x1)
    return m

print slope(2, 3, 6, 7)

您甚至可以通过省略变量并直接返回计算来进一步优化,如下所示:

def slope(x1, y1, x2, y2):
    return (y2-y1)/(x2-x1)

答案 1 :(得分:1)

谢谢你的帮助!结束只是一个过度思考方向预期的问题。很高兴我有一点功能练习。如上所述,如果系统需要功能,则列出正确的答案。