我正在研究一个评估两个矩形区域的小程序。用户输入矩形的长度和宽度(我的第一个模块),然后程序计算矩形的面积(第二个模块),最后在计算两个区域之间的差异后,显示结果,告诉哪一个是更大的。
但是输入长度和宽度后,程序会显示一条错误消息,告诉我的模块没有定义为:
ImportError: No module named 'inputRect'
我的代码:
#Project M04: Rectangle with the bigger area
#Python 3.4.3
#Module that asks width and lenght of the two rectangles
def inputRect():
width1 = int(input("Enter the width of the first rectangle: "))
length1 = int(input("Enter the length of the first rectangle: "))
width2 = int(input("Enter the width of the second rectangle: "))
lenght2 = int(input("Enter the length of the second rectangle: "))
inputRect()
#import the fonction "inputRect"
import inputRect
#calcule the area of the two rectangles
def calcArea():
rect1 = int(width1) * int(length1)
rect2 = int(width2) * int(length2)
calcArea()
#import the fonction "calcArea"
import calcArea
#Calcul the difference between the two rectangles (rectangle 1 - rectangle 2 = difference)
#if > 0
def difference():
difference = int(rect1) - int(rect2)
# if ifference > 0 : rectangle 1 has a bigger area
if (difference) > 0 :
print ("Rectangle numer 1 is bigger than rectangle 2")
# if ifference < 0 : rectangle 2 has a bigger area
if (difference) < 0 :
print ("Rectangle numer 2 is bigger than rectangle 1")
# else : both rectangles have the same area
else:
print ("Both rectangles have the same area")
difference()
答案 0 :(得分:1)
注意:
inputRect
和calcArea
return
来获取所需的数据width
和length
这样的事情就是一个例子:
def get_rect_input():
width1 = int(input("Enter the width of the first rectangle: "))
length1 = int(input("Enter the length of the first rectangle: "))
width2 = int(input("Enter the width of the second rectangle: "))
lenght2 = int(input("Enter the length of the second rectangle: "))
return width1, length1, width2, lenght2
def calculate_area(width, length):
return width * length
def show_comparation(width1, length1, width2, lenght2):
area1 = calculate_area(width1, lenght2)
area2 = calculate_area(width2, lenght2)
if area1 > area2:
print ("Rectangle number 1 is bigger than rectangle 2")
elif area1 < area2:
print ("Rectangle number 2 is bigger than rectangle 1")
else:
print ("Both rectangles have the same area")
if __name__ == "__main__":
width1, lenght1, width2, lenght2 = get_rect_input()
show_comparation(width1, lenght1, width2, lenght2)
答案 1 :(得分:1)
您不必导入您正在使用的模块中的函数(即:您启动的文件的代码)。
def inputRect():
"Returns width and lenght in 2 tuples"
w1 = int(input("Width 1st rectangle: "))
l1 = int(input("Lenght 1st rectangle: "))
w2 = int(input("Width 2nd rectangle: "))
l2 = int(input("Lenght 2nd rectangle: "))
# tuple 1 (w & l of rect 1) - tuple 2 (w & l of r2)
return (w1, l1), (w2, l2)
# get the 2 tuple into r1 and r2 to calculate the area
r1, r2 = inputRect()
def calcArea():
"Uses the tuples to calculate area and returns results"
area1, area2 = r1[0] * r1[1], r2[0] * r2[1]
return area1, area2
# This variable memorizes the two areas
rect = calcArea()
def difference():
"Calculates which one area is bigger"
difference = rect[0] - rect[1]
# if ifference > 0 : rectangle 1 has a bigger area
if (difference) > 0:
print("Rectangle numer 1 is bigger than rectangle 2 by", rect[0] - rect[1])
# if ifference < 0 : rectangle 2 has a bigger area
elif (difference) < 0:
print("Rectangle numer 2 is bigger than rectangle 1 by", rect[1] - rect[0])
# else : both rectangles have the same area
else:
print("Both rectangles have the same area")
difference()
输出:
Width 1st rectangle: 10 Lenght 1st rectangle: 10 Width 2nd rectangle: 20 Lenght 2nd rectangle: 20 Rectangle numer 2 is bigger than rectangle 1 by 300