我的作业要求我创建一个包含2个功能的模块。用户输入三角形的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
不知道从哪里开始,有点困惑。任何帮助,将不胜感激。
答案 0 :(得分:1)
在计算区域(再次存储在变量a
中)时,您正在使用变量b
,c
和a
而未定义它们:
a = (p*(p-a)*(p-b)*(p-c))**(.5)
也许你想在这里使用s1
,s2
和s3
:
a = (p * (p - s1) * (p - s2) * (p - s3)) ** .5
答案 1 :(得分:0)
更改功能
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)
到
def area(s1,s2,s3):
p = (s1+s2+s3)/2
a = (p*(p-s1)*(p-s2)*(p-s3))**(.5)
print("The area of the triangle is: ",a)