Reputation: 157
I'm working on a small program that evaluates the area of two rectangles. The user enters the length and the width of the rectangle (my first module), then the program calculates the area of the rectangles (second module), and finally after calculating the difference between both of the areas, display the result, telling which one is the bigger.
But after entering the lengths and widths, the program displays an error message, telling that my module is not defined as:
ImportError: No module named 'inputRect'
My Code:
#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()
Upvotes: 0
Views: 296
Reputation: 23463
You don't have to import a function that is in the module you are using (i.e.: the code of the file that you launch).
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()
OUTPUT:
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
Upvotes: 1
Reputation: 418
Notes:
inputRect
and calcArea
return
in your function to get data that you needwidth
and length
Something like this could be an example:
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)
Upvotes: 1