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.
#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
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".