赋值之前引用的局部变量“a”

2024-05-14 23:04:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个任务,要求我创建一个有两个函数的模块。用户输入三角形的3条边,这两个函数将检查(a)输入是否有效,(b)三角形的面积是多少。在

 def isValid(s1,s2,s3):

    if (s1 + s2<=s3):
         print("Input is invalid.")
    else:
         area(s1,s2,s3)


 def area(s1,s2,s3):
     p = (s1+s2+s3)/2
     a = (p*(p-a)*(p-b)*(p-c))**(.5)
     print("The area of the triangle is: ",a)


s1 = eval(input("input s1: "))
s2 = eval(input("input s2: "))
s3 = eval(input("input s3: "))

isValid(s1,s2,s3)

分配之前,我收到一个错误:UnboundLocalError: local variable 'a' referenced

不知道该怎么办,有点困惑。任何帮助都将不胜感激。在


Tags: 模块函数用户inputs3isdefeval
2条回答

变更函数

 def area(s1,s2,s3):
     p = (s1+s2+s3)/2
     a = (p*(p-a)*(p-b)*(p-c))**(.5)
     print("The area of the triangle is: ",a)

^{pr2}$

在计算面积(再次存储在变量ab和{}时,您没有定义它们:

a = (p*(p-a)*(p-b)*(p-c))**(.5)

也许您想在这里使用s1s2和{}:

^{pr2}$

相关问题 更多 >

    热门问题