Example 6.1. Using the if statement
#!/usr/bin/python
# Filename: if.py
number = 23
guess = int(raw_input('Enter an integer : '))
if guess == number:
print 'Congratulations, you guessed it.' # New block starts here
print "(but you do not win any prizes!)" # New block ends here
elif guess < number:
print 'No, it is a little higher than that' # Another block
# You can do whatever you want in a block ...
else:
print 'No, it is a little lower than that'
# you must have guess > number to reach here
print 'Done'
# This last statement is always executed, after the if statement is executed
Output
$ python if.py
Enter an integer : 50
No, it is a little lower than that
Done
$ python if.py
Enter an integer : 22
No, it is a little higher than that
Done
$ python if.py
Enter an integer : 23
Congratulations, you guessed it.
(but you do not win any prizes!)
Done
How It Works
In this program, we take guesses from the user and check if it is the number that we have. We set the
variable number to any integer we want, say 23. Then, we take the user's guess using the
raw_input() function. Functions are just reusable pieces of programs. We'll read more about them in
the next chapter.
We supply a string to the built-in raw_input function which prints it to the screen and waits for input
from the user. Once we enter something and press enter, the function returns the input which in the case
of raw_input is a string. We then convert this string to an integer using int and then store it in the
variable guess. Actually, the int is a class but all you need to know right now is that you can use it to
convert a string to an integer (assuming the string contains a valid integer in the text).
Next, we compare the guess of the user with the number we have chosen. If they are equal, we print a
success message. Notice that we use indentation levels to tell Python which statements belong to which
block. This is why indentation is so important in Python. I hope you are sticking to 'one tab per indentation
level' rule. Are you?
Notice how the if statement contains a colon at the end - we are indicating to Python that a block of
statements follows.
Then, we check if the guess is less than the number, and if so, we inform the user to guess a little higher
than that. What we have used here is the elif clause which actually combines two related if elseif
else statements into one combined if-elif-else statement. This makes the program easier
and reduces the amount of indentation required.
The elif and else statements must also have a colon at the end of the logical line followed by their
corresponding block of statements (with proper indentation, of course)
You can have another if statement inside the if-block of an if statement and so on - this is called a
nested if statement.
Remember that the elif and else parts are optional. A minival valid if statement is
if True:
print 'Yes, it is true'
After Python has finished executing the complete if statement along with the assocated elif and
else clauses, it moves on to the next statement in the block containing the if statement. In this case, it
is the main block where execution of the program starts and the next statement is the print 'Done'
statement. After this, Python sees the ends of the program and simply finishes up.
Although this is a very simple program, I have been pointing out a lot of things that you should notice
even in this simple program. All these are pretty straightforward (and surprisingly simple for those of
you from C/C++ backgrounds) and requires you to become aware of all these initially, but after that, you
will become comfortable with it and it'll feel 'natural' to you.
Note for C/C++ Programmers
There is no switch statement in Python. You can use an if..elif..else statement to do
the same thing (and in some cases, use a dictionary to do it quickly)
No comments:
Post a Comment