需要帮助,使用Terminal Run编写一个关于已定义函数的python

时间:2016-04-08 08:04:31

标签: python terminal

我是python的新手,目前正在学习正确使用def函数。

我在Sublime Text中的def代码如下:

def quadratic(a,b,c):
    if not isinstance(a,(int,float)):
        raise TypeError('bad operand type')
    if not isinstance(b,(int,float)):
        raise TypeError('bad operand type')
    if not isinstance(c,(int,float)):
        raise TypeError('bad operand type')
    d = b ** 2 - 4 * a * c
        if d < 0:
            print('no result!')
        if d = 0:
            x1 = -b / (2 * a)
            x2 = x1
            return x1,x2
        else:
            x1 = (-b + math.sqrt(d)) / (2 * a)
            x2 = (-b - math.sqrt(d)) / (2 * a)
            return x1,x2

但是当我使用终端(在Mac中)运行此代码时,遇到此错误:

Frank-s-Macbook-Pro:Coding frank$ quadratic(1,2,1)
-bash: syntax error near unexpected token `1,2,1'

对于我必须做出的错误,我将不胜感激。

3 个答案:

答案 0 :(得分:7)

您无法直接从终端运行python定义的功能。在这种情况下,您可能希望通过在终端中键入python来在与脚本相同的文件夹中运行解释器。

然后python启动(如果它已安装并且别名正确)。然后,您可以通过导入文件名导入该函数。我们假设您的函数保存在myfunction.py文件下。然后:

import myfunction (without the .py)

然后输入:

>> myfunction.quadratic(a, b, c)

你应该把答案归还给你。

如果你想直接从终端运行脚本,你应该查看输入函数或sys.argv函数,并在重写后执行你的脚本

$ python myfunction.py

编辑: 您的代码中也存在一些错误,请参阅其他答案:)

答案 1 :(得分:1)

我对mac bash不太了解,但不应该打电话:

 python quadratic(1,2,1)

答案 2 :(得分:0)

您的代码中至少有2个语法错误... 更正后的代码:

def quadratic(a,b,c):
    if not isinstance(a,(int,float)):
        raise TypeError('bad operand type')
    if not isinstance(b,(int,float)):
        raise TypeError('bad operand type')
    if not isinstance(c,(int,float)):
        raise TypeError('bad operand type')
    d = b ** 2 - 4 * a * c
    if d < 0:
        print('no result!')
    if d == 0:
        x1 = -b / (2 * a)
        x2 = x1
        return x1,x2
    else:
        x1 = (-b + math.sqrt(d)) / (2 * a)
        x2 = (-b - math.sqrt(d)) / (2 * a)
        return x1,x2

之后

  

d = b ** 2 - 4 * a * c

如果语句有错误的缩进,并且包含错​​误:

  

如果d = 0:

更正这些错误后,您可以直接从Sublime(cmd + b)

运行代码