PYTHON CONDITIONALS CHAPTER 5 FROM

advertisement
PYTHON
CONDITIONALS
CHAPTER 5
FROM
THINK PYTHON
HOW TO THINK LIKE A COMPUTER SCIENTIST
BOOLEAN
EXPRESSION
A Boolean expression is an expression that results in either a
True or False. We can test these in easily. For example
>>> 5 == 2 #note the double == is used to test for equality
False
>>> 5 == 5 # Note that 5=5(or x=5) is really bad!!
True
# Other relational operators include
x != y
x<y
x <= y x>y
x>=y
All of these return a True or False
Note that True and False are NOT strings
LOGICAL OPERATORS
There are three logical operators, and, or and not
These are used as we do in English
>>> True and True
True
>>> True and False if both true return true else false
# False
>>> True or False # if either is true return true
True
>>> not True
True
>>> True and not False
True
FURTHER EXAMPLES
>>> x=10
>>> y = 0
>>> x>5 and y == 0
True
>>> x != 10 or not y == 3
True
>>> x>5 and x<=20 # returns True if x is between 5 and 20
True
>>> x%2==0 or x%3==0 # divisible by 2 or by 3 return True
True
CONDITIONAL EXECUTION
The first instruction that we will look at that uses conditions
is the if statement. Here is the syntax
if <condition>:
statement
statement
more_statements
Execute these instruction only
if <condition> Is True. Four space
Indention is required!
# an example
if x!=0:
y = 20.0/x
print y
#makes sure the we are not dividing by 0
ALTERNATIVE
EXAMPLE
if <condition>:
Instruction to execute if <condition> is True
else:
Instructions to execute if <condition> is False
# Example
if (x>0):
print ‘x is positive’
else:
print ‘x is less than or equal to zero’
CHAINED CONDITIONALS
If x<y:
print ‘x is less than y’
elif x>y:
print ‘x is greater than y’
else:
print ‘x is equal to y’
#You can chain as many of these elif’s as you want
# Lets do an example with grades
DETERMINE A LETTER
GRADE FROM A NUMBER
grade= ?
#Assign some value here
if grade>=90:
print ‘I made an A’
elif grade>=80:
#Note: As soon as a true is found
# the remainder is skipped!!
print ‘I made a B’
elif grade>=70:
print ‘I made a C’
else:
print ‘I better get to studying’
WE CAN ALSO PUT AN IF
WITHIN AN IF (NESTED)
Suppose we want to see if a is greater than b and c
if a>b :
if b>c:
print a, ‘is the largest’
else:
Note: This is a contrived
example. There is a much
easier way to do this!
if a>c:
print a, ‘is the largest’
else:
print a, ‘is not the largest’
else:
print a, ‘ is not the largest’
Think about using the
and operator!!
KEYBOARD INPUT
HTTP://DOCS.PYTHON.ORG/2/LIBRARY/FUNCTIONS.HTML
Before we look at more if-else examples we need to see how
to get input (keyboard) from the person running the python
program.
raw_input([prompt]) If the prompt argument is present, it is written to
screen without a trailing newline. The function then reads a line from input,
converts it to a string (stripping a trailing newline), and returns that.
When EOF is read, EOFError is raised.
Example:
x = raw_input(‘Enter a number:’)
Prompt
A string
OK, LOOK AT THIS
>>> x = raw_input('Enter a number:')
Enter a number:23
>>> x+3
#What will be printed?
Traceback (most recent call last):
File "<pyshell#3>", line 1, in <module>
x+3
TypeError: cannot concatenate 'str' and 'int' objects
WHY?
So what can we do to fix it?
CONVERT IT TO AN
INTEGER OR FLOAT
#method 1
>>> x = raw_input('Enter a number:')
Enter a number:12
>>> x=int(x)
#convert x to an integer
>>> x+4
16
#method 2
>>> x = int(raw_input('Enter a number:'))+4
Enter a number:23
27
What if I typed in 3.45
instead of 12
HERE IS WHAT
HAPPENS
>>> x = raw_input('Enter a number:')
Enter a number:3.45
>>> int(x)
Traceback (most recent call last):
File "<pyshell#12>", line 1, in <module>
int(x)
ValueError: invalid literal for int() with base 10: '3.45'
Note:
float(x) will work!
SOME PROBLEMS TO
CONTEMPLATE
1. Evaluate a polynomial 𝒚 = 𝒂𝒙𝟐 + 𝒃𝒙 + 𝒄 where a,b and c
are entered from the keyboard. Here is a script
a=float(raw_input(‘Enter a:’))
b=float(raw_input(‘Enter b:’))
c=float(raw_input(‘Enter c:’))
x=float(raw_input(‘Enter x:’))
y = a*x**2+b*x+c
print ‘The answer is’,y
Enter a:2
Enter b:3
Enter c:4
Enter x:5
The answer is 69.0
>>>
FIND THE LARGEST INTEGER
( USE MAX SUPPORT VARIABLE )
x = raw_input('Enter an integer :')
max=int(x)
x = raw_input('Enter an integer :')
x = int(x)
if x>max:
max = x
x = raw_input('Enter an integer :')
x=int(x)
if x>max:
max = x
print 'The largest is',max
DIVISIBILITY TESTS
A SEQUENCE OF IF’S
x = raw_input('Enter an integer :')
x=int(x)
# don’t forget this one.
if x%2==0:
print "divisible by 2"
if x%3==0:
print "divisible by 3"
if x%5==0:
print "divisible by 5"
if x%7==0:
print "divisible by 7"
USING STRINGS
x = raw_input('Enter your first name :')
# note x is a string already so no conversion is required!
if x=='Richard':
print x,'is an awesome teacher'
else:
print x, 'must be an awesome student'
Download