# Decisions

**Next:**Debugging

**Up:**Non-Programmers Tutorial For Python

**Previous:**Count to 10

**Contents**

**Subsections**

# If statement

As always I believe I should start each chapter with a warm up typing exercise so here is a short program to compute the absolute value of a number:n = input("Number? ") if n < 0: print "The absolute value of",n,"is",-n else: print "The absolute value of",n,"is",n

Here is the output from the two times that I ran this program:

Number? -34 The absolute value of -34 is 34 Number? 1 The absolute value of 1 is 1

So what does the computer do when when it sees this piece of code? First it prompts the user for a number with the statement `n = input("Number? ")`. Next it reads the line `if n < 0:` If `n` is less than zero Python runs the line `print "The absolute value of",n,"is",-n`. Otherwise python runs the line `print "The absolute value of",n,"is",n`.

More formally Python looks at whether the *expression* `n < 0` is true or false. A `if` statement is followed by a *block* of statements that are run when the expression is true. Optionally after the `if` statement is a `else` statement. The `else` statement is run if the expression is false.

There are several different tests that a expression can have. Here is a table of all of them:

operator | function |

`<` |
less than |

`<=` |
less than or equal to |

`>` |
greater than |

`>=` |
greater than or equal to |

`==` |
equal |

`!=` |
not equal |

`<>` |
another way to say not equal |

Another feature of the `if` command is the `elif ` statement. It stands for else if and means if the original `if` statement is false and then the `elif` part is true do that part. Here's a example:

a = 0 while a < 10: a = a + 1 if a > 5: print a," > ",5 elif a <= 7: print a," <= ",7 else: print "Neither test was true"

and the output:

1 <= 7 2 <= 7 3 <= 7 4 <= 7 5 <= 7 6 > 5 7 > 5 8 > 5 9 > 5 10 > 5

Notice how the `elif a <= 7` is only tested when the `if` statement fail to be true. `elif` allows multiple tests to be done in a single if statement.

# Examples

#Plays the guessing game higher or lower # (originally written by Josh Cogliati, improved by Quique) #This should actually be something that is semi random like the # last digits of the time or something else, but that will have to # wait till a later chapter. (Extra Credit, modify it to be random # after the Modules chapter) number = 78 guess = 0 while guess != number : guess = input ("Guess a number: ") if guess > number : print "Too high" elif guess < number : print "Too low" print "Just right"

Sample run:

Guess a number:100 Too high Guess a number:50 Too low Guess a number:75 Too low Guess a number:87 Too high Guess a number:81 Too high Guess a number:78 Just right

even.py

#Asks for a number. #Prints if it is even or odd number = input("Tell me a number: ") if number % 2 == 0: print number,"is even." elif number % 2 == 1: print number,"is odd." else: print number,"is very strange."

Sample runs.

Tell me a number: 3 3 is odd. Tell me a number: 2 2 is even. Tell me a number: 3.14159 3.14159 is very strange.

average1.py

#keeps asking for numbers until 0 is entered. #Prints the average value. count = 0 sum = 0.0 number = 1 #set this to something that will not exit # the while loop immediatly. print "Enter 0 to exit the loop" while number != 0: number = input("Enter a number:") count = count + 1 sum = sum + number count = count - 1 #take off one for the last number print "The average was:",sum/count

Sample runs

Enter 0 to exit the loop Enter a number:3 Enter a number:5 Enter a number:0 The average was: 4.0 Enter 0 to exit the loop Enter a number:1 Enter a number:4 Enter a number:3 Enter a number:0 The average was: 2.66666666667

average2.py

#keeps asking for numbers until count have been entered. #Prints the average value. sum = 0.0 print "This program will take several numbers than average them" count = input("How many numbers would you like to sum:") current_count = 0 while current_count < count: current_count = current_count + 1 print "Number ",current_count number = input("Enter a number:") sum = sum + number print "The average was:",sum/count

Sample runs

This program will take several numbers than average them How many numbers would you like to sum:2 Number 1 Enter a number:3 Number 2 Enter a number:5 The average was: 4.0 This program will take several numbers than average them How many numbers would you like to sum:3 Number 1 Enter a number:1 Number 2 Enter a number:4 Number 3 Enter a number:3 The average was: 2.66666666667

# Exercises

Modify the password guessing program to keep track of how many times the user has entered the password wrong. If it is more than 3 times, print ``That must have been complicated.''

Write a program that asks for two numbers. If the sum of the numbers is greater than 100, print ``That is big number''.

Write a program that asks the user their name, if they enter your name say "That is a nice name", if they enter "John Cleese" or "Michael Palin", tell them how you feel about them ;), otherwise tell them "You have a nice name".

**Next:**Debugging

**Up:**Non-Programmers Tutorial For Python

**Previous:**Count to 10

**Contents**Josh Cogliati jjc@honors.montana.edu Wikibooks Version: Wikibooks Non-programmers Python Tutorial Contents