Python: How do I change my code to be modular using 2 functions to validate and get all inputs? Also how to use GetValidPositiveInteger in it because I dont know how to replace the old data validation loops. My code;   import math def calculate_paint_needed(length, width, height, doors, windows):    total_wall_area = 2 * (length + width) * height    total_door_area = sum(door["length"] * door["width"] for door in doors)    print("Area of doors: ", total_door_area)    total_window_area = sum(window["length"] * window["width"] for window in windows)    print("Area of windows: ", total_window_area)     total_wall_area -= total_door_area + total_window_area     gallons_needed = total_wall_area / 100.0    return gallons_needed def get_valid_input(prompt):    while True:        try:            value = float(input(prompt))            return value        except ValueError:            print("Invalid input. Please enter a valid number.") def main():    length = get_valid_input("Enter the length of the room in feet: ")    width = get_valid_input("Enter the width of the room in feet: ")    height = get_valid_input("Enter the height of the room in feet: ")     total_wall_area = 2 * (length + width) * height    print("Total wall area before subtracting doors and windows:", total_wall_area)     print("Excellent, let's get your windows and doors in now.")    while True:        try:            num_doors = int(input("Enter the number of doors (must be greater than 0): "))            if num_doors > 0:                break            else:                print("Number of doors must be greater than 0.")        except ValueError:            print("Invalid input. Please enter a valid integer.")    doors = [{"length": get_valid_input(f"Enter the length of door {i+1} in feet: "),              "width": get_valid_input(f"Enter the width of door {i+1} in feet: ")}             for i in range(num_doors)]     num_windows = int(input("Enter the number of windows: "))    windows = [{"length": get_valid_input(f"Enter the length of window {i+1} in feet: "),                "width": get_valid_input(f"Enter the width of window {i+1} in feet: ")}               for i in range(num_windows)]     total_door_area = sum(door["length"] * door["width"] for door in doors)    total_window_area = sum(window["length"] * window["width"] for window in windows)    total_wall_area -= total_door_area + total_window_area     gallons_needed = total_wall_area / 100.0     print(f"You will need to buy {math.ceil(gallons_needed)} gallons of paint.")    print("You will need exactly", gallons_needed, "gallons of paint for the walls after subtracting the doors and windows.") if __name__ == "__main__":    main()

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question

Python: How do I change my code to be modular using 2 functions to validate and get all inputs?

Also how to use GetValidPositiveInteger in it because I dont know how to replace the old data validation loops.

My code;

 

import math

def calculate_paint_needed(length, width, height, doors, windows):
    total_wall_area = 2 * (length + width) * height
    total_door_area = sum(door["length"] * door["width"] for door in doors)
    print("Area of doors: ", total_door_area)
    total_window_area = sum(window["length"] * window["width"] for window in windows)
    print("Area of windows: ", total_window_area)

    total_wall_area -= total_door_area + total_window_area

    gallons_needed = total_wall_area / 100.0
    return gallons_needed

def get_valid_input(prompt):
    while True:
        try:
            value = float(input(prompt))
            return value
        except ValueError:
            print("Invalid input. Please enter a valid number.")

def main():
    length = get_valid_input("Enter the length of the room in feet: ")
    width = get_valid_input("Enter the width of the room in feet: ")
    height = get_valid_input("Enter the height of the room in feet: ")

    total_wall_area = 2 * (length + width) * height
    print("Total wall area before subtracting doors and windows:", total_wall_area)

    print("Excellent, let's get your windows and doors in now.")
    while True:
        try:
            num_doors = int(input("Enter the number of doors (must be greater than 0): "))
            if num_doors > 0:
                break
            else:
                print("Number of doors must be greater than 0.")
        except ValueError:
            print("Invalid input. Please enter a valid integer.")
    doors = [{"length": get_valid_input(f"Enter the length of door {i+1} in feet: "),
              "width": get_valid_input(f"Enter the width of door {i+1} in feet: ")}
             for i in range(num_doors)]

    num_windows = int(input("Enter the number of windows: "))
    windows = [{"length": get_valid_input(f"Enter the length of window {i+1} in feet: "),
                "width": get_valid_input(f"Enter the width of window {i+1} in feet: ")}
               for i in range(num_windows)]

    total_door_area = sum(door["length"] * door["width"] for door in doors)
    total_window_area = sum(window["length"] * window["width"] for window in windows)
    total_wall_area -= total_door_area + total_window_area

    gallons_needed = total_wall_area / 100.0

    print(f"You will need to buy {math.ceil(gallons_needed)} gallons of paint.")
    print("You will need exactly", gallons_needed, "gallons of paint for the walls after subtracting the doors and windows.")

if __name__ == "__main__":
    main()

Expert Solution
steps

Step by step

Solved in 2 steps with 1 images

Blurred answer
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education