错误 - 未定义名称“操作”

时间:2017-01-31 14:38:25

标签: python python-2.7

我只是想制作一个我被要求做的节目。 这是一个带有判别式的数学项目,但我得到一个错误:

  

名称'action'未定义

这是我的代码。怎么了?

import math

def main(a,b,g):
    action = math.pow(b,2) - (4*a*g)
    return action

a = input("Give me A's value: ")
b = input("Give me B's value: ")
g = input("Give me G's value: ")


if  action < 0:
    print ("The discriminant is < 0")
elif action > 0:
    x1 = (-b + math.sqrt(praksh)) / (2*a)
    x2 = (-b - math.sqrt(praksh)) / (2*a)
    print "x1:", x1
    print "x2:", x2
else:
    dis0 = (-b) / (2 * a)enter code here
    print "The discriminant is: " ,dis0

3 个答案:

答案 0 :(得分:3)

在进行if检查之前,您必须将值初始化为action。目前,它在main函数中定义,因此在函数范围之外无法访问。根据您的代码,为了初始化它,您必须调用main()函数并将返回值存储为action变量。

为了使其有效,请使用以下行(内联评论)更新代码

action = main(a,b,g)  # call `main` function for initializing `action`

if  action < 0:  # your if condition

注意:在Python 3.x中,输入返回str值。它必须明确地类型转换为int,如:

a, b, g = int(a), int(b), int(g)

答案 1 :(得分:2)

您尚未定义action

import math

def main(a,b,g):
    action = math.pow(b,2) - (4*a*g)
    return action

a = input("Give me A's value: ")
b = input("Give me B's value: ")
g = input("Give me G's value: ")

action = main(a, b, g)   // define action
if  action < 0:
    print ("The discriminant is < 0")
elif action > 0:
    x1 = (-b + math.sqrt(praksh)) / (2*a)
    x2 = (-b - math.sqrt(praksh)) / (2*a)
    print "x1:", x1
    print "x2:", x2
else:
    dis0 = (-b) / (2 * a)enter code here
    print "The discriminant is: " ,dis0

答案 2 :(得分:0)

嗯,&#39;行动&#39;在函数main的范围内定义。并且主要没有被召唤。