python – part 4 conditionals and recursion. modulus operator yields the remainder when first...
TRANSCRIPT
Prepared by Department of Preparatory year
Python – Part 4
Conditionals and Recursion
Modulus Operator
• Yields the remainder when first operand is divided by the second.
• >>>remainder=7%3• >>>print (remainder)• 1
Prepared by Department of Preparatory year
Boolean expressions
• An expression that is either true or false• Operator ==• >>>5==5• True• >>>5==6• False
Prepared by Department of Preparatory year
Boolean expressions
• Type bool – True and False• >>>type (True)• <type ‘bool’>• >>>type (False)• <type ‘bool’>
Prepared by Department of Preparatory year
Boolean expressions
Other operators:x != y # x is not equal to y x > y # x is greater than y x < y # x is less than y x >= y # x is greater than or equal to y x <= y # x is less than or equal to y
Prepared by Department of Preparatory year
Logical operators
• And, or, not• Semantics similar to their meaning in English• x>0 and x<10• not(x>y)• Any nonzero number in Python is interpreted
as “true”• >>> 17 and True• True
Prepared by Department of Preparatory year
Conditional execution
• If statementif x>0: # CONDITION
print (‘x is positive’)
Same structure as function definition- Header- Indented block- No limit on number of statements in the body (but
at least one)Prepared by
Department of Preparatory year
Alternative execution
if – else statementif x%2==0:
print (‘x is even’) else:
print (‘x is odd’)
- Exactly one of the alternatives executed- Alternatives are called branches
Prepared by Department of Preparatory year
Chained conditionals
if-elseif statement if x<y:
print (‘x is less than y’) elif x>y: print (‘x is greater than y’) else:
print (‘x and y are equal’)
- Exactly one branch executed (no limit on number of elseif stmts). If there is else must be at the end
Prepared by Department of Preparatory year
Loops• What is a loop for?– To repeat a piece of code over and over.– Examples:• Iterating through an array (sum, search, print, etc.)• Run the main program loop (i.e. keep asking for user
input until the program is over.)• Etc.
10Prepared by Department of Preparatory year
While Statement• New keyword
while
• Syntaxwhile ( condition ): expression1 expression2 …
11
MUST end with colon.
MU
ST have indentation.
Prepared by Department of Preparatory year
• While execution:– Perform test– If test true, go to body.• Execute body expressions.• At the end of the block, go
back to test.
– If test is false, go on.
12
while ( condition ): expression1 expression2 …
next expression
While Statement
Prepared by Department of Preparatory year
• The ingredients of a loop:n = 0while ( n <= 5 ): print n n = n + 1print “Out Of LOOP!”
13
1. Initialize loop variable outside of the loop.
2. Define loop condition.3. Do loop work.4. Change the loop variable.
While Statement
Prepared by Department of Preparatory year
• Example 1:n = 0while ( n <= 5 ): print n n = n + 1
print “Out Of LOOP!”
14
Execution:1. Loop variable, n, set to 0
outside the loop.2. Perform test: 0 <=5 True. So
we enter loop.3. Print n (so, we print 0)4. Change n from 0 to 1.5. Go back to test.
While Statement
Prepared by Department of Preparatory year
0
OUTPUT
• Example 1:n = 0while ( n <= 5 ): print n n = n + 1
print “Out Of LOOP!”
15
Execution:6. Perform test: 1 <=5 True. So
we enter loop.7. Print n (so, we print 1)8. Change n from 1 to 2.9. Go back to test.
While Statement
Prepared by Department of Preparatory year
01
OUTPUT
• Example 1:n = 0while ( n <= 5 ): print n n = n + 1
print “Out Of LOOP!”
16
Execution:10. Perform test: 2 <=5 True. So
we enter loop.11. Print n (so, we print 2)12. Change n from 2 to 3.13. Go back to test.
While Statement
Prepared by Department of Preparatory year
012
OUTPUT
• Example 1:n = 0while ( n <= 5 ): print n n = n + 1
print “Out Of LOOP!”
17
Execution:14. Perform test: 3 <=5 True. So
we enter loop.15. Print n (so, we print 3)16. Change n from 3 to 4.17. Go back to test.
While Statement
Prepared by Department of Preparatory year
0123
OUTPUT
• Example 1:n = 0while ( n <= 5 ): print n n = n + 1
print “Out Of LOOP!”
18
Execution:18. Perform test: 4 <= 5 True. So
we enter loop.19. Print n (so, we print 4)20. Change n from 4 to 5.21. Go back to test.
While Statement
Prepared by Department of Preparatory year
01234
OUTPUT
• Example 1:n = 0while ( n <= 5 ): print n n = n + 1
print “Out Of LOOP!”
19
Execution:22. Perform test: 5 <= 5 True. So
we enter loop.23. Print n (so, we print 5)24. Change n from 5 to 6.25. Go back to test.
While Statement
Prepared by Department of Preparatory year
012345
OUTPUT
• Example 1:n = 0while ( n <= 5 ): print n n = n + 1
print “Out Of LOOP!”
20
Execution:26. Perform test: 6 <= 5 False.
Skip the loop.27. Print “Out of LOOP!”
012345Out of LOOP!
OUTPUT
While Statement
Prepared by Department of Preparatory year
• Example 1:n = 0while ( n <= 5 ): print n n = n + 1
print “Blast off!”
21
Key points:1. Initialize loop variable outside
of the loop.2. Determine loop condition.3. Do loop work.4. Change the test value.
While Statement
Prepared by Department of Preparatory year
• Example 1:n = 1while ( n <= 5 ): print n # n = n + 1
print “Blast off!”– What would happen if we didn’t change the loop
variable?• The loop condition would never become false.
22
While Statement
Prepared by Department of Preparatory year
• Infinite loop– When the test condition never has the chance
to become False, you have an infinite loop.– World’s simplest infinite loop:
while ( True ): print “hi”
• Other possible infinite loops?
23
While Statement
Prepared by Department of Preparatory year
• Infinite loopn = 5while ( n < 6 ): print n n = n - 1
print “Blast off!”
– n must always be less than 10.
24
While Statement
Prepared by Department of Preparatory year
• Infinite loopn = 5while ( n != 0 ): print n n = n - 2
print “Blast off!”
– n will never reach the value 0: 9, 7, 5, 3, 1, -1, -2, etc.
25
While Statement
Prepared by Department of Preparatory year
• Infinite loopn = 5while ( n >= 0 ): print n n = n - 2
print “Blast off!”
– Not an infinite loop. When n reaches -1, the test wil no longer be true.
26
While Statement
Prepared by Department of Preparatory year
Recursion
• One function calls itselfdef countdown(n):
if n <= 0: print ('Blastoff!' )
else: print (n)countdown(n-1)
- What happens if we call- >>> coundown (3)
Prepared by Department of Preparatory year
Recursion
• def print_n(s, n):if n <= 0:
return print (s)
print_n(s, n-1)
- return statement exits the function- Base case- Recursive (general) case
Prepared by Department of Preparatory year
Infinite recursion
• Recursion never reaches a base casedef recurse():
recurse()
Prepared by Department of Preparatory year
Keyboard input
• Built-in function called input (previous versions raw_input)
• Program stops and waits for the user to type something
• Value pressed returned to program as a string• Good idea to print a prompt telling user what
to input
Prepared by Department of Preparatory year
Keyboard input
• >>>name =input (‘What is your name?\n’)• Arthur, King of the Britons!• >>>print (name)• Arthur, King of the Britons!
• \n represents a newline
Prepared by Department of Preparatory year
Keyboard input
• >>> prompt = 'What is the velocity?\n' • >>> speed = input(prompt) • What is the velocity? • 17 • >>> int(speed) • 17
Prepared by Department of Preparatory year
Prepared by Department of Preparatory year
Part 4
End