Home > Back-end >  Print multiple input entries as one display in Python
Print multiple input entries as one display in Python

Time:04-07

I wrote this code in Visual Studio Code and run this in the Terminal, and I'm able to input one entry for the list, after I input the first entry, it displays the data but it won't let me input more than one entry at a time without having to run the file in the Terminal again to input another entry. I'm trying to print the three entries once, altogether, after I input the three entries. Any advice/tips/tricks?

# This imports the sys module.
import sys

# This Retail Item class holds data about products.
class RetailItem:

    # __init__ method initializes the attributes.
    def __init__(self, description, units, price):
        self.__item_description = description
        self.__units_in_inventory = units
        self.__price = price

    # The set_item_description method gets the item type.
    def set_item_description(self, description):
        self.__item_description = description

    # The set_units_in_inventory method gets number of items available.
    def set_units_in_inventory(self, units):
        self.__units_in_inventory = units

    # The set_price method gets the cost of item.
    def set_price(self, price):
        self.__price = price

    # The get_item_description method returns the item type.
    def get_item_description(self):
        return self.__item_description

    # The get_units_in_inventory returns the number of items available.
    def get_units_in_inventory(self):
        return self.__units_in_inventory

    # The get_price method returns the cost of item.
    def get_price(self):
        return self.__price


# This is the main function, it gets a list of Retail Items, and then displays them. 

def main():
    
    inventory = make_list()

    print('Here is the Retail Item list you entered: ')
    display_list(inventory)

    # The make_list will get data for three items. It will
    #return a list of available items.

def make_list():
    # Create an empty list.
    item_list = []

    # Add three item to the list.
    print('Enter data for three items: ')
    for count in range(1, 4):
        # Get item data.
        print('Item number '   str(count)   ':')
        item = input('Enter description of item: ')
        units = float(input('Enter number of units in inventory: '))
        price = float(input('Enter price per item: '))
        print()

        # Creat new RetailItem and assign items variable.
        items = RetailItem(item, units, price)
        # Add items to list.
        item_list.append(items)

        return item_list

# This display_list function displays the items.

def display_list(item_list):
    for item in item_list:
        print(item.get_item_description())
        print(item.get_units_in_inventory())
        print(item.get_price())
        print()

# This calls the main function.
main()

CodePudding user response:

The line return item_list should be outside the for loop. Refer the below code:

def make_list():
    # Create an empty list.
    item_list = []
    # Add three item to the list.
    print('Enter data for three items: ')
    for count in range(1, 4):
        # Get item data.
        print('Item number '   str(count)   ':')
        item = input('Enter description of item: ')
        units = float(input('Enter number of units in inventory: '))
        price = float(input('Enter price per item: '))
        print()

        # Creat new RetailItem and assign items variable.
        items = RetailItem(item, units, price)
        # Add items to list.
        item_list.append(items)

    return item_list
  • Related