我只是想制作一个我被要求做的节目。 这是一个带有判别式的数学项目,但我得到一个错误:
名称'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
答案 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的范围内定义。并且主要没有被召唤。