Answer to Question #270245 in Python for Lisa

Question #270245

Assume that a grocery shop is introducing shopping through mobile. The shop keeper will gets the list of items from the customer through whatsApp. After receiving the list he will prepare the bill for the customer based on the availability of the items. That is, the shopkeeper will check whether the item is available or not by checking the stock in the shop, if the item is available he will add that item to the bill otherwise he will add that item to another list called not-available list. Finally the shopkeeper will send the bill and the not available list to the customer for confirmation. Write a python code to simulate mobile shopping for a grocery shop to generate bill and not available list. Hint : Create the stock list that contains item, unit price and available quantity. 


1
Expert's answer
2021-11-23T05:18:22-0500
# This loop will go on until the budget is integer or float

while True: 


    try:


        bg = float(input("Enter your budget : "))


        # if budget is integer or float it will be stored 


        # temporarily in variable 's'


        s = bg 


    except ValueError:


        print("PRINT NUMBER AS A AMOUNT")


        continue


    else:


        break

 
# dictionary to store product("name"), quantity("quant"), 
# price("price") with empty list as their values

a ={"name":[], "quant":[], "price":[]}

 
# converting dictionary to list for further updation

b = list(a.values())

 
# variable na value of "name" from dictionary 'a'

na = b[0]

 
# variable qu value of "quant" from dictionary 'a'

qu = b[1]

 
# variable pr value of "price" from dictionary 'a'

pr = b[2]

 
# This loop terminates when user select 2.EXIT option when asked
# in try it will ask user for an option as an integer (1 or 2) 
# if correct then proceed else continue asking options

while True:


    try:


        ch = int(input("1.ADD\n2.EXIT\nEnter your choice : "))


    except ValueError:


        print("\nERROR: Choose only digits from the given option")


        continue


    else:


        # check the budget is greater than zero and option selected


        # by user is 1 i.e. to add an item


        if ch == 1 and s>0:       


  

            # input products name                


            pn = input("Enter product name : ") 


            # input quantity of product


            q = input("Enter quantity : ")


            # input price of the product


            p = float(input("Enter price of the product : "))  

 

            if p>s:


                # checks if price is less than budget


                print("\nCAN, T BUT THE PRODUCT") 


                continue

 

            else:


                # checks if product name already in list


                if pn in na:  


                    # find the index of that product


                    ind = na.index(pn)  

 

                    # remove quantity from "quant"  index of the product


                    qu.remove(qu[ind]) 

 

                    # remove price from "price" index of the product


                    pr.remove(pr[ind])  

 

                    # insert new value given by user earlier


                    qu.insert(ind, q)   

 

                    # insert new value given by user earlier


                    pr.insert(ind, p)   

 

                    # subtracting the price from the budget and assign


                    # it to 's' sum(pr) is because pr = [100, 200] if 


                    # budget is 500 then s = bg-sum(pr) = 200


                    # after updating for same product at index 0 let


                    # pr = [200, 200] so s = 100


                    s = bg-sum(pr)   

 

                    print("\namount left", s)


                else:


                    # append value of in "name", "quantity", "price"


                    na.append(pn)  


  

                    # as na = b[0] it will append all the value in the


                    # list eg: "name":["rice"]


                    qu.append(q)   

 

                    # same for quantity and price


                    pr.append(p)    

 

                    # after appending new value the sum in price


                    # as to be calculated


                    s = bg-sum(pr)   

 

                    print("\namount left", s)

 

        # if budget goes zero print "NO BUDGET"


        elif s<= 0: 


            print("\nNO BUDGET") 


        else:


            break

 
# will print amount left in variable 's'

print("\nAmount left : Rs.", s) 

 
# if the amount left equals to any amount in price list

if s in pr: 


    # then printing the name of the product which can buy


    print("\nAmount left can buy you a", na[pr.index(s)])  

 

print("\n\n\nGROCERY LIST")

 
# print final grocery list

for i in range(len(na)): 


    print(na[i], qu[i], pr[i])

Need a fast expert's response?

Submit order

and get a quick answer at the best price

for any assignment or question with DETAILED EXPLANATIONS!

Comments

No comments. Be the first!

Leave a comment

LATEST TUTORIALS
New on Blog
APPROVED BY CLIENTS