On Wed, Apr 10, 2013 at 1:47 AM, <thomasancill...@gmail.com> wrote: > ... I'm not sure what version I'm using ...
Try putting these lines into a Python script: import sys print(sys.version) That, on any version of Python (back a fairly long way, Steven D'Aprano can probably say how far), will give you a line or so of output that summarizes your version. For instance, I can get the following: 3.3.0 (v3.3.0:bd8afb90ebf2, Sep 29 2012, 10:55:48) [MSC v.1600 32 bit (Intel)] 2.7.4 (default, Apr 6 2013, 19:54:46) [MSC v.1500 32 bit (Intel)] 3.1.1+ (r311:74480, Nov 2 2009, 14:49:22) [GCC 4.4.1] 3.4.0a0 (default:5dcd7ee0716a, Mar 30 2013, 08:17:06) [GCC 4.7.2] It's a handy system summary. > choice = raw_input("\n1:Inches to Meter\n2:Millileters to Pint\n3:Acres to > Square-Miles\n") > if choice == 1: You probably want to use int(raw_input(...)) here; currently, you're going to get back a string eg "1", which is not equal to the integer 1. But at least now you don't have the automatic evaluation happening :) > restart = raw_input("If you would like to perform another conversion > type: true\n") > > Not sure what you meant to exactly by this: > "There's a lot of duplicated code here, most notably your continuation > condition. You can simply back-tab after the elif block and have some > code that reunites all the branches; this would also make things > clearer" Notice how you have the "restart = " line (which I quote above) duplicated into each of your code branches? That's what I'm talking about. Here's a pseudocode version of the looping you have: while restart: choice = get_choice() if choice == 1: do_choice_1() restart = get_restart() elif choice == 2: do_choice_2() restart = get_restart() elif choice == 3: do_choice_3() restart = get_restart() Here's how you could deduplicate that: while restart: choice = get_choice() if choice == 1: do_choice_1() elif choice == 2: do_choice_2() elif choice == 3: do_choice_3() restart = get_restart() The restart line is unindented one level, which brings it out of the if/elif block, and then it'll get executed regardless of 'choice'. (To strictly match your original code, you'd need to finish the elif block with "else: continue", but the code makes at least as good sense without it, so I'd consider that optional.) > Thanks for your reply and if you have any ideas for me to improve my coding > that will prevent me from learning python in a sloppy way. I'd like to learn > it correctly the first time! You're doing fine. The general pattern of programming is: while True: write_code() try: figure_out_what_is_wrong_with_code() except LackOfSkillException: mail("python-list@python.org",smart_question()) run_code() So far, looks like you're following it just fine. :) ChrisA -- http://mail.python.org/mailman/listinfo/python-list