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 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 it 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. An if
statement is followed by an indented block of statements that are run when the expression is
true. Optionally after the if statement is an else statement and another indented block of
statements. This second block of statements is run if the expression is false.
There are a number of different tests that an 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 (old style, not recommended)
Another feature of the if command is the elif statement. It stands for else if and means
if the original if statement is false but the elif part is true, then do the elif part. And if neither the if or elif expressions are true, then do what's in the else block. Here's an
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 fails to be true. There
can be more than one elif expression, allowing multiple tests to be done in a single if
statement.
6.0.20 Examples
# This Program Demonstrates the use of the == operator
# using numbers
print 5 == 6
# Using variables
x = 5
y = 8
print x == y
And the output
False
False
High_low.py
# Plays the guessing game higher or lower
# 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:
30
First things first
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 to something that will not exit the while loop
immediately.
print "Enter 0 to exit the loop"
31
Decisions
while number != 0:
number = input("Enter a number: ")
if number != 0:
count = count + 1
sum = sum + 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 numbers have been entered.
# Prints the average value.
sum = 0.0
print "This program will take several numbers then average them"
count = input("How many numbers would you like to average: ")
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 then average them
How many numbers would you like to average: 2
Number 1
Enter a number: 3
Number 2
Enter a number: 5
The average was: 4.0
This program will take several numbers then average them
How many numbers would you like to average: 3
Number 1
Enter a number: 1
Number 2
Enter a number: 4
Number 3
32
First things first
Enter a number: 3
The average was: 2.66666666667
6.0.21 Exercises
Modify the higher or lower program from this section to keep track of how many times the
user has entered the wrong number. If it is more than 3 times, print "That must have been
complicated." Note that the program does not have to quit asking for the number before it
is guessed, it just has to print this after the number is guessed.
Wednesday, March 21, 2018
Subscribe to:
Post Comments (Atom)
0 comments:
Post a Comment