我的程序旨在创建一个名为MyTriangle的模块,该模块读取三角形的三个边,并在输入有效时计算该区域。如果输入无效,则显示“输入无效”。该程序运作良好。唯一的问题是我试图将模块(除主函数之外的所有内容)导入到不同的文件中。我以前从未这样做过,也找不到任何能给出明确指示的地方。这是我的代码:
side1, side2, side3 = eval(input("Enter three sides in a double: "))
def isValid(side1, side2, side3):
return side1 + side2 > side3 and side1 + side3 > side2 and side2 + side3 > side1
def area(side1, side2, side3):
s = (side1 + side2 + side3) / 2;
totalArea = (s * (s - side1) * (s - side2) * (s - side3)) ** 0.5
return totalArea
def main():
condition = isValid(side1, side2, side3)
totalArea = area(side1, side2, side3)
if condition:
print("The area of the triangle is " + str(totalArea))
else:
print("input is invalid")
main()
我尝试使用“def main()”部分并将其放入文件中。用所有其余代码命名文件“MyTriangle.py”
import MyTriangle
def main():
condition = isValid(side1, side2, side3)
totalArea = area(side1, side2, side3)
if condition:
print("The area of the triangle is " + str(totalArea))
else:
print("input is invalid")
main()
当我运行该程序时,它会询问“输入三个双方:”。当我把数字放入(例如:1,1,1)时,它说“名称'isValid'没有定义。我不确定我是正确地导入它还是什么。对于我的生活,我不能想一想。请帮帮忙吗?
答案 0 :(得分:2)
当您说import myTriangle
时,您将myTriangle
定义为另一个模块。该模块中定义的变量作为myTriangle
的属性进行访问。您可以使用myTriangle.isValid(...)
代替isValid(...)
。或者,您可以说from myTriangle import *
而不是import myTriangle
。使用from myTriangle import *
将myTriangle
中定义的所有变量放入本地名称空间,以便可以在不将myTriangle
放在开头的情况下访问它们。