Restaurant Menu System I wrote a basic menu application for my intro to python. I'm fairly new, and python does look promising.

the_burger = 16.99;
french_fries = 5.99;
currie_sauce = 19.99;
napkins_with_chocolates = 10.50;
juice_box = 89.01;
takeout = 18.99;
total = 0.0;
DONE = False
print("""
+-------------------------------------------+
| The Restaurant at the End of the Universe |
+---------------------------------+---------+
| A\tThe "Big Boy" Burger      | $""" + str(the_burger) + """  |
+---------------------------------+---------+
| B\tFrench Fries              | $""" + str(french_fries) + """   |
+---------------------------------+---------+
| C\tCurrie sauce              | $""" + str(currie_sauce) + """  |
+---------------------------------+---------+
| D\tNapkins with Chocolates   | $""" + str(napkins_with_chocolates) + str(0) + """  |
+---------------------------------+---------+
| E\tJuice Box                 | $""" + str(juice_box) + """  |
+---------------------------------+---------+
| F\tTakeout                   | $""" + str(takeout) + """  |
+---------------------------------+---------+
""");
while(not DONE):
  print("Total:", total);
  Item = input("Select a letter or 'done': ");
  if Item is "A":
    total += the_burger;
  elif Item is "B":
    total += french_fries;
  elif Item is "C":
    total += currie_sauce;
  elif Item is "D":
    total += napkins_with_chocolates;
  elif Item is "E":
    total += juice_box;
  elif Item is "F":
    total += takeout;
  elif Item is "done":
    print("Final total:", total);
    DONE = True
Flag variables suck, and should be avoided.  Moreover, variables should not be named in ALL_CAPS to look like constants.  All you need to get out of the loop is a break.

You've hard-coded the parts of the menu in three places:


the prices
the ASCII table
the loop


All of the menu information should be defined in one place.  You can programmatically generate the ASCII table using the astropy.io.ascii package, but I've put together a quick-and-dirty implementation below.

The if statements in the loop should be replaced by a dictionary lookup.  Furthermore, is is the wrong operator to use; string comparison should be done using ==.  In fact, entering "done" doesn't correctly end the loop, because of that.

You used + str(0) as a hack to get a price ending in "0" to display properly.  To represent fixed-point numbers, you should use a Decimal instead.

This program is long enough that it would be a good idea to make a main() function.

Statements should generally not be terminated with semicolons in Python.  Also, PEP 8, the official style guide, specifies that indentation should be four spaces.  This is an important convention in Python, where indentation matters a lot.

Suggested solution

from collections import OrderedDict, namedtuple
from decimal import Decimal
from string import ascii_uppercase

def tabular(table, widths):
    def sandwich(delim, contents):
        return delim + delim.join(contents) + delim
    def cell(value, width):
        return ' ' + str(value).ljust(width - 2)
    def cells(row):
        return sandwich('|', (cell(col, w) for col, w in zip(row, widths))) + '\n'
    horiz_rule = sandwich('+', ('-' * (w - 1) for w in widths)) + '\n'
    return sandwich(horiz_rule, (cells(row) for row in table))

# In Python 3.7, this should be a @dataclass instead:
class Item(namedtuple('Item', 'name price')):
    def __new__(cls, name, price):
        return super().__new__(cls, name, Decimal(price))

def main():
    menu_items = OrderedDict(zip(ascii_uppercase, [
        Item('The "Big Boy" Burger', '16.99'),
        Item('French Fries', '5.99'),
        Item('Currie sauce', '19.99'),
        Item('Napkins with Chokolates', '10.50'),
        Item('Juice Box', '89.01'),
        Item('Takeout', '18.99'),
    ]))

    print(
        tabular([['The Restaurant at the End of the Universe']], [36 + 9]) +
        tabular(
            (('{0} {1.name}'.format(*stuff), '${1.price}'.format(*stuff))
              for stuff in menu_items.items()),
            [36, 9]
        )
    )

    total = Decimal('0.00')
    while True:
        print('Total: ${0}'.format(total))
        selection = input("Select a letter or 'done': ")
        if selection == 'done':
            break
        total += menu_items[selection].price
    print('Final total: ${0}'.format(total))

if __name__ == '__main__':
    main()