title: Code in Python that can Calculate Different Product Values, Discounts, etc., for Use by Customers at Shops
body: <p>I am currently trying to create a code that will help people in shops who need to:</p>
  
  <ul>
  <li>Calculate the item with the best value (out of up to 10 items)</li>
  <li>Calculate the sale price</li>
  <li>Calculate the discount</li>
  <li>Create a shopping cart or a shopping list</li>
  <li>Print a receipt (just by simply showing the items, the quantity and the the cost of each products, then showing the total cost at the bottom)</li>
  </ul>
  
  <p>I have only worked on the top four points above, but I have not a single idea on how to create and print a receipt. Here's my code so far:</p>
  
  <pre><code>#This part greets the user, and lets the user know that the application has started
  print("Hello there!")
  #This starts off the loop, but this variable may be changed later on
  cont = "yes"
  #This is the actual loop
  while cont == "yes" or cont == "Yes" or cont == "YES":
    print("Choose an option below:")
  #This shows the options
    print("1) Calculate the value of different product sizes")
    print("2) Calculate the sale price")
    print("3) Calculate the discount")
    print("4) Create a shopping list")
    print("5) Exit")
  #This part lets the user choose what they would like to do
    option = float(input("Choose an option (1/2/3/4/5): "))  
  #This is what happens if the user chooses Option 4
    if option == 4:
  #This is the "Shopping list" part of the application below
      import os,sys,time
      sl = []
      try:
        f = open("Your_shopping_list.txt","r")
        for line in f:
          sl.append(line.strip())
        f.close()
      except:
          pass
      def mainScreen():
        print("Your list contains",len(sl),"items.")
        print("Please choose from the following options:")
        print("1) Add to the list")
        print("2) Delete from the list")
        print("3) View the list")
        print("4) Quit the program")
        choice = input("Enter your choice here (1/2/3/4): ")
        if len(choice) &gt; 0:
          if choice == "1":
            addScreen()
          elif choice == "2":
            deleteScreen()
          elif choice == "3":
            viewScreen()
          elif choice == "4":
            sys.exit()
          else:
            mainScreen()
        else:
          mainScreen()
      def addScreen():
        print("Please enter the name of the item that you want to add.")
        print("Press ENTER to return to the main menu.")
        item = input("Item: ")
        if len(item) &gt; 0:
          sl.append(item)
          print("Item added.")
          saveList()
          time.sleep(1)
          addScreen()
        else:
          mainScreen()
      def viewScreen():
        for item in sl:
          print(item)
        print("Press ENTER to return to the main menu")
        input()
        mainScreen()
      def deleteScreen():
        global sl
        count = 0
        for item in sl:
          print(count, " - ", item)
          count = count + 1
        print("Press ENTER to return to the main menu.")
        print("Which item do you want to remove?")
        choice = input("Enter your choice here: ")
        if len(choice) &gt; 0:
          try:
            del sl[int(choice)]
            print("Item deleted...")
            saveList()
            time.sleep(1)
          except:
            print("Invalid number")
            time.sleep(1)
          deleteScreen()
        else:
          mainScreen()
      def saveList():
        f = open("Your_shopping_list.txt", "w")
        for item in sl:
          f.write(item)
          f.close()
        mainScreen()
  #This is what happens if the user chooses Option 1
  #This is the part that calculates the value of up to 10 products
    if option == 1:
  #This notifies the user that there can only be up to 10 product sizes entered
      print("Please note: This code can only take up to 10 product sizes.")
  #This asks the user how many products there are
      products = int(input("How many products are there? "))
  #This is just in case the user still types that there are over 10 products
      if products &gt; 10:
        print("This code can only take up to 10 product sizes.")
        print("Please enter only up to 10 product sizes below.")
      if products &lt;= 1:
  #This tells the user that they must enter at least 2 product sizes to compare them
        print("You must enter at least two product sizes to compare.")
      if products &gt;= 1:
  #This asks for information because the user may just be looking for the $/g.
        cost1 = float(input("Cost of first product($): "))
        mass1 = float(input("Mass of first product(g): "))
        ans1 = cost1/mass1
        a = ans1
  #This part substitutes undefined variables with a blank
  #This is in case the number of sizes being compared doesn't reach 2 to 10
        ans2 = ""
        ans3 = ""
        ans4 = ""
        ans5 = ""
        ans6 = ""
        ans7 = ""
        ans8 = ""
        ans9 = ""
        ans10 = ""
  #This is for when there are two or more product sizes
      if products &gt;= 2:
        cost2 = float(input("Cost of second product($): "))
        mass2 = float(input("Mass of second product(g): "))
        ans2 = cost2/mass2
        if a &gt; ans2:
          a = ans2
  #This is for when there are three or more product sizes
      if products &gt;= 3:
        cost3 = float(input("Cost of third product($): "))
        mass3 = float(input("Mass of third product(g): "))
        ans3 = cost3/mass3
        if a &gt; ans3:
          a = ans3
        ans4 = ""
        ans5 = ""
        ans6 = ""
        ans7 = ""
        ans8 = ""
        ans9 = ""
        ans10 = ""
  #This is for when there are four or more product sizes
      if products &gt;= 4:
        cost4 = float(input("Cost of fourth product($): "))
        mass4 = float(input("Mass of fourth product(g): "))
        ans4 = cost4/mass4
        if a &gt; ans4:
          a = ans4
        ans5 = ""
        ans6 = ""
        ans7 = ""
        ans8 = ""
        ans9 = ""
        ans10 = ""
  #This is for when there are five or more product sizes
      if products &gt;= 5:
        cost5 = float(input("Cost of fifth product($): "))
        mass5 = float(input("Mass of fifth product(g): "))
        ans5 = cost5/mass5
        if a &gt; ans5:
          a = ans5
        ans6 = ""
        ans7 = ""
        ans8 = ""
        ans9 = ""
        ans10 = ""
  #This is for when there are six or more product sizes
      if products &gt;= 6:
        cost6 = float(input("Cost of sixth product($): "))
        mass6 = float(input("Mass of sixth product(g): "))
        ans6 = cost6/mass6
        if a &gt; ans6:
          a = ans6
        ans7 = ""
        ans8 = ""
        ans9 = ""
        ans10 = ""
  #This is for when there are seven or more product sizes
      if products &gt;= 7:
        cost7 = float(input("Cost of seventh product($): "))
        mass7 = float(input("Mass of seventh product(g): "))
        ans7 = cost7/mass7
        if a &gt; ans7:
          a = ans7
        ans8 = ""
        ans9 = ""
        ans10 = ""
  #This is for when there are eight or more product sizes
      if products &gt;= 8:
        cost8 = float(input("Cost of eighth product($): "))
        mass8 = float(input("Mass of eighth product(g): "))
        ans8 = cost8/mass8
        if a &gt; ans8:
          a = ans8
        ans9 = ""
        ans10 = ""
  #This is for when there are nine or more product sizes
      if products &gt;= 9:
        cost9 = float(input("Cost of ninth product($): "))
        mass9 = float(input("Mass of ninth product(g): "))
        ans9 = cost9/mass9
        if a &gt; ans9:
          a = ans9
        ans10 = ""
  #This is for when there are ten or more product sizes
      if products &gt;= 10:
        cost10 = float(input("Cost of tenth product($): "))
        mass10 = float(input("Mass of tenth product(g): "))
        ans10 = cost10/mass10
        if a &gt; ans10:
          a = ans10
  #There's nothing for 10+ sizes for there is no loop for it'll make the code too long
  #This tells the user the which product size(s) is/are the ones with the best value
  #This tells the user the final result
      if products &gt;= 1:
        print("The product(s) with the best value is/are the below product number(s):")
        if ans1 == a:
          print(1)
        if ans2 == a:
          print(2)
        if ans3 == a:
          print(3)
        if ans4 == a:
          print(4)
        if ans5 == a:
          print(5)
        if ans6 == a:
          print(6)
        if ans7 == a:
          print(7)
        if ans8 == a:
          print(8)
        if ans9 == a:
          print(9)
        if ans10 == a:
          print(10)
  #This tells the user the cost per gram of the product(s) with the best value is/are
        print("The cost per gram is $", a, "/ g")
  #This tells the user to pick the size with best quality if multiple are above
  #Sometimes, items with the best value may not have the best quality.
        print("If there are multiple options above, choose the one with best quality.")
  #This is what happens if the user chooses Option 2
  #This calculates the price after a discount
    if option == 2:
  #This asks for the ticket (original) price of a specific product
      p = float(input('The ticket (original) price($): '))
  #This asks for the discount (in percentage) of a specific product
      d = float(input('The discount(%): '))
  #This then puts the information together and calculates the discount...
      s = (d*0.01)
      ps = (p*s)
      answer = (p - ps)
      answer2 = str(round(answer, 2))
      print('The discount is $', ps)
  #... and also the final discounted price.
  #Finally, it tells the user the result
      print('The final price is $', answer2)
  #This is what happens if the user chooses Option 3
  #This calculates the discount (in percentage)
    if option == 3:
  #This collects information about what the ticket (original) price was
      o = float(input('The ticket (original) price($): '))
  #This asks what the price of the product after the discount is
  #Then it takes all the information, puts them together and calculates the discount(%)
      d = float(input('Price after the discount($): '))
      p = 100/(o/d)
      p = str(round(p, 2))
  #Finally, it tells the user the result
      print('The percentage discount is', p,'%')
  #This is the final option, which is for the user to quit using this application
    if option == 5:
  #This asks the user one last time in case they accidentally pressed 5.
      exit = input("Are you sure you want to exit? (Yes/No): ")
  #There are three versions of "Yes" to make the application more user-friendly
      if exit == "yes":
  #"Thank you and goodbye" thanks the user for using this application
  #Then, it says goodbye and ends the application
        print("Thank you and goodbye!")
        cont = 'no'
      if exit == "Yes":
        print("Thank you and goodbye!")
        cont = 'no'
      if exit == "YES":
        print("Thank you and goodbye!")
        cont = 'no'
  #But if exit doesn't equal "Yes" or "yes" or "YES", then cont still equals "yes".
  #And if cont = "yes", then the loop restarts.
  #This is if the user doesn't choose any of the above and enters an invalid input
    elif option != 1:
      if option != 2:
        if option != 3:
          if option != 4:
            if option != 5:
              print('Invalid input')
  #This asks if the user would like to continue or quit
              cont = input('Continue? (Yes/No): ')
  #To make the application more user-friendly, there are again three versions of "No"
              if cont == 'No':
  #"Thank you and goodbye" thanks the user for using this application
  #Then, it says goodbye and ends the application
                print("Thank you and goodbye!")
              if cont == 'no':
                print("Thank you and goodbye!")
              if cont == 'NO':
                print("Thank you and goodbye!")
  </code></pre>