On 01/09/13 22:53, Nick Wilson wrote:

Enter command: print
----------------------------------
Code     Price   Quant       Value
----------------------------------

The bit above needs to be printed once, at the start


TPW       2.00       5       10.00

This bit needs to be repeated for each share type


----------------------------------
Total cost:                  10.00
==================================

And this bit needs to be printed once at the end
after doing the calculations.

**(This is all even when displayed in Wing101)

That will depend on fonts used etc. If you really need it aligned neatly I recommend using html and displaying it in a browser,
but its a lot more work that way!


PROMPT_FOR_COMMAND = 'Enter command: '
PROMPT_FOR_CODE = 'Enter share code to add: '
PROMPT_FOR_PRICE = 'Enter share price: '
PROMPT_FOR_QUANTITY = 'Enter share quantity: '

Were you ever a COBOL programmer by any chance?

def main():
     """This is the main function for the program, ie, this function is
called
     first when the program is run"""

There is nothing in Python that will run this first. You need to call it explicitly. This is often done inside a name test clause:

if __name__ == "__main__":
    main()



     command = input(PROMPT_FOR_COMMAND).lower()
     if command == 'add':
         return portfolio.append(process_add_code(portfolio))

Are you sure you want to return here?
That will terminate the main function without saving portfolio.
You may want to create a menu system where you repeatedly ask
for input until quit is selected.


     if command == "print" and len(portfolio) <= 1:
         print_portfolio_table(portfolio)
         return main()
     if command == "quit":
         print(MESSAGE_GOODBYE)

HTH

--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to