It's easier to ask for forgiveness than permission. Ask yourself "Is this an
action that could fail in a specific way?" If yes, you need try/except. If no,
you probably need if/else. When dealing with data such as user input or opening
files and so forth, use try/except. When those actions fail, they fail in
highly specific ways. (No read/write access, no space, invalid user data, etc.)

    while True:
        try:
            number = float(raw_input("Enter a number between 1-10: "))
        except ValueError:
            print("Error: You need to enter a number.")
        else:
            # If they got this far, we have a number of some kind.
            # Check that it is in the valid range:
            if number <= 10 and number >= 1:
                # It's valid, stop the loop!
                break;
            else:
                print("Error: Number must be in the range of 1-10.")
    print("Yay, the number %.2f!" % number)


On the other hand, if I was looking for an internal condition, I would use
if/else:

    win_number = 3
    if number == 3:
        print("You won!")
    else:
        print("You loose!")


The rule doesn't always hold true, but it's a general guideline.

Hope that helps.
-Modulok-

On 1/25/12, Michael Lewis <mjole...@gmail.com> wrote:
> Hi everyone,
>
> I am new to python and have a noob question.
>
> Is it generally better to use try/except/else statements or if/elif/else?
> Or, is there a time and place for each?
>
> For a simple example, assume I want a user to enter a number
>
> 1) try:
>        number = float(input('enter a number: ')
>    except ValueError:
>        print('enter a number.')
>    else:
>        print('you entered a number')
>
> *OR*
> *
> *
> 2) number = float(input('enter a number: ')
>     if number >=0 or < 0:
>         print('you entered a number')
>     else:
>          print('enter a number.')
>
> Thanks for the help.
>
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to