Python – Part 4 Conditionals and Recursion. Modulus Operator Yields the remainder when first...
-
Upload
andra-morris -
Category
Documents
-
view
224 -
download
1
Transcript of Python – Part 4 Conditionals and Recursion. Modulus Operator Yields the remainder when first...
![Page 1: Python – Part 4 Conditionals and Recursion. Modulus Operator Yields the remainder when first operand is divided by the second. >>>remainder=7%3 >>>print.](https://reader035.fdocuments.us/reader035/viewer/2022062407/56649e1c5503460f94b0a238/html5/thumbnails/1.jpg)
Prepared by Department of Preparatory year
Python – Part 4
Conditionals and Recursion
![Page 2: Python – Part 4 Conditionals and Recursion. Modulus Operator Yields the remainder when first operand is divided by the second. >>>remainder=7%3 >>>print.](https://reader035.fdocuments.us/reader035/viewer/2022062407/56649e1c5503460f94b0a238/html5/thumbnails/2.jpg)
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
![Page 3: Python – Part 4 Conditionals and Recursion. Modulus Operator Yields the remainder when first operand is divided by the second. >>>remainder=7%3 >>>print.](https://reader035.fdocuments.us/reader035/viewer/2022062407/56649e1c5503460f94b0a238/html5/thumbnails/3.jpg)
Boolean expressions
• An expression that is either true or false• Operator ==• >>>5==5• True• >>>5==6• False
Prepared by Department of Preparatory year
![Page 4: Python – Part 4 Conditionals and Recursion. Modulus Operator Yields the remainder when first operand is divided by the second. >>>remainder=7%3 >>>print.](https://reader035.fdocuments.us/reader035/viewer/2022062407/56649e1c5503460f94b0a238/html5/thumbnails/4.jpg)
Boolean expressions
• Type bool – True and False• >>>type (True)• <type ‘bool’>• >>>type (False)• <type ‘bool’>
Prepared by Department of Preparatory year
![Page 5: Python – Part 4 Conditionals and Recursion. Modulus Operator Yields the remainder when first operand is divided by the second. >>>remainder=7%3 >>>print.](https://reader035.fdocuments.us/reader035/viewer/2022062407/56649e1c5503460f94b0a238/html5/thumbnails/5.jpg)
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
![Page 6: Python – Part 4 Conditionals and Recursion. Modulus Operator Yields the remainder when first operand is divided by the second. >>>remainder=7%3 >>>print.](https://reader035.fdocuments.us/reader035/viewer/2022062407/56649e1c5503460f94b0a238/html5/thumbnails/6.jpg)
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
![Page 7: Python – Part 4 Conditionals and Recursion. Modulus Operator Yields the remainder when first operand is divided by the second. >>>remainder=7%3 >>>print.](https://reader035.fdocuments.us/reader035/viewer/2022062407/56649e1c5503460f94b0a238/html5/thumbnails/7.jpg)
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
![Page 8: Python – Part 4 Conditionals and Recursion. Modulus Operator Yields the remainder when first operand is divided by the second. >>>remainder=7%3 >>>print.](https://reader035.fdocuments.us/reader035/viewer/2022062407/56649e1c5503460f94b0a238/html5/thumbnails/8.jpg)
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
![Page 9: Python – Part 4 Conditionals and Recursion. Modulus Operator Yields the remainder when first operand is divided by the second. >>>remainder=7%3 >>>print.](https://reader035.fdocuments.us/reader035/viewer/2022062407/56649e1c5503460f94b0a238/html5/thumbnails/9.jpg)
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
![Page 10: Python – Part 4 Conditionals and Recursion. Modulus Operator Yields the remainder when first operand is divided by the second. >>>remainder=7%3 >>>print.](https://reader035.fdocuments.us/reader035/viewer/2022062407/56649e1c5503460f94b0a238/html5/thumbnails/10.jpg)
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
![Page 11: Python – Part 4 Conditionals and Recursion. Modulus Operator Yields the remainder when first operand is divided by the second. >>>remainder=7%3 >>>print.](https://reader035.fdocuments.us/reader035/viewer/2022062407/56649e1c5503460f94b0a238/html5/thumbnails/11.jpg)
While Statement• New keyword
while
• Syntaxwhile ( condition ): expression1 expression2 …
11
MUST end with colon.
MU
ST have indentation.
Prepared by Department of Preparatory year
![Page 12: Python – Part 4 Conditionals and Recursion. Modulus Operator Yields the remainder when first operand is divided by the second. >>>remainder=7%3 >>>print.](https://reader035.fdocuments.us/reader035/viewer/2022062407/56649e1c5503460f94b0a238/html5/thumbnails/12.jpg)
• 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
![Page 13: Python – Part 4 Conditionals and Recursion. Modulus Operator Yields the remainder when first operand is divided by the second. >>>remainder=7%3 >>>print.](https://reader035.fdocuments.us/reader035/viewer/2022062407/56649e1c5503460f94b0a238/html5/thumbnails/13.jpg)
• 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
![Page 14: Python – Part 4 Conditionals and Recursion. Modulus Operator Yields the remainder when first operand is divided by the second. >>>remainder=7%3 >>>print.](https://reader035.fdocuments.us/reader035/viewer/2022062407/56649e1c5503460f94b0a238/html5/thumbnails/14.jpg)
• 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
![Page 15: Python – Part 4 Conditionals and Recursion. Modulus Operator Yields the remainder when first operand is divided by the second. >>>remainder=7%3 >>>print.](https://reader035.fdocuments.us/reader035/viewer/2022062407/56649e1c5503460f94b0a238/html5/thumbnails/15.jpg)
• 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
![Page 16: Python – Part 4 Conditionals and Recursion. Modulus Operator Yields the remainder when first operand is divided by the second. >>>remainder=7%3 >>>print.](https://reader035.fdocuments.us/reader035/viewer/2022062407/56649e1c5503460f94b0a238/html5/thumbnails/16.jpg)
• 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
![Page 17: Python – Part 4 Conditionals and Recursion. Modulus Operator Yields the remainder when first operand is divided by the second. >>>remainder=7%3 >>>print.](https://reader035.fdocuments.us/reader035/viewer/2022062407/56649e1c5503460f94b0a238/html5/thumbnails/17.jpg)
• 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
![Page 18: Python – Part 4 Conditionals and Recursion. Modulus Operator Yields the remainder when first operand is divided by the second. >>>remainder=7%3 >>>print.](https://reader035.fdocuments.us/reader035/viewer/2022062407/56649e1c5503460f94b0a238/html5/thumbnails/18.jpg)
• 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
![Page 19: Python – Part 4 Conditionals and Recursion. Modulus Operator Yields the remainder when first operand is divided by the second. >>>remainder=7%3 >>>print.](https://reader035.fdocuments.us/reader035/viewer/2022062407/56649e1c5503460f94b0a238/html5/thumbnails/19.jpg)
• 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
![Page 20: Python – Part 4 Conditionals and Recursion. Modulus Operator Yields the remainder when first operand is divided by the second. >>>remainder=7%3 >>>print.](https://reader035.fdocuments.us/reader035/viewer/2022062407/56649e1c5503460f94b0a238/html5/thumbnails/20.jpg)
• 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
![Page 21: Python – Part 4 Conditionals and Recursion. Modulus Operator Yields the remainder when first operand is divided by the second. >>>remainder=7%3 >>>print.](https://reader035.fdocuments.us/reader035/viewer/2022062407/56649e1c5503460f94b0a238/html5/thumbnails/21.jpg)
• 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
![Page 22: Python – Part 4 Conditionals and Recursion. Modulus Operator Yields the remainder when first operand is divided by the second. >>>remainder=7%3 >>>print.](https://reader035.fdocuments.us/reader035/viewer/2022062407/56649e1c5503460f94b0a238/html5/thumbnails/22.jpg)
• 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
![Page 23: Python – Part 4 Conditionals and Recursion. Modulus Operator Yields the remainder when first operand is divided by the second. >>>remainder=7%3 >>>print.](https://reader035.fdocuments.us/reader035/viewer/2022062407/56649e1c5503460f94b0a238/html5/thumbnails/23.jpg)
• 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
![Page 24: Python – Part 4 Conditionals and Recursion. Modulus Operator Yields the remainder when first operand is divided by the second. >>>remainder=7%3 >>>print.](https://reader035.fdocuments.us/reader035/viewer/2022062407/56649e1c5503460f94b0a238/html5/thumbnails/24.jpg)
• 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
![Page 25: Python – Part 4 Conditionals and Recursion. Modulus Operator Yields the remainder when first operand is divided by the second. >>>remainder=7%3 >>>print.](https://reader035.fdocuments.us/reader035/viewer/2022062407/56649e1c5503460f94b0a238/html5/thumbnails/25.jpg)
• 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
![Page 26: Python – Part 4 Conditionals and Recursion. Modulus Operator Yields the remainder when first operand is divided by the second. >>>remainder=7%3 >>>print.](https://reader035.fdocuments.us/reader035/viewer/2022062407/56649e1c5503460f94b0a238/html5/thumbnails/26.jpg)
• 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
![Page 27: Python – Part 4 Conditionals and Recursion. Modulus Operator Yields the remainder when first operand is divided by the second. >>>remainder=7%3 >>>print.](https://reader035.fdocuments.us/reader035/viewer/2022062407/56649e1c5503460f94b0a238/html5/thumbnails/27.jpg)
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
![Page 28: Python – Part 4 Conditionals and Recursion. Modulus Operator Yields the remainder when first operand is divided by the second. >>>remainder=7%3 >>>print.](https://reader035.fdocuments.us/reader035/viewer/2022062407/56649e1c5503460f94b0a238/html5/thumbnails/28.jpg)
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
![Page 29: Python – Part 4 Conditionals and Recursion. Modulus Operator Yields the remainder when first operand is divided by the second. >>>remainder=7%3 >>>print.](https://reader035.fdocuments.us/reader035/viewer/2022062407/56649e1c5503460f94b0a238/html5/thumbnails/29.jpg)
Infinite recursion
• Recursion never reaches a base casedef recurse():
recurse()
Prepared by Department of Preparatory year
![Page 30: Python – Part 4 Conditionals and Recursion. Modulus Operator Yields the remainder when first operand is divided by the second. >>>remainder=7%3 >>>print.](https://reader035.fdocuments.us/reader035/viewer/2022062407/56649e1c5503460f94b0a238/html5/thumbnails/30.jpg)
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
![Page 31: Python – Part 4 Conditionals and Recursion. Modulus Operator Yields the remainder when first operand is divided by the second. >>>remainder=7%3 >>>print.](https://reader035.fdocuments.us/reader035/viewer/2022062407/56649e1c5503460f94b0a238/html5/thumbnails/31.jpg)
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
![Page 32: Python – Part 4 Conditionals and Recursion. Modulus Operator Yields the remainder when first operand is divided by the second. >>>remainder=7%3 >>>print.](https://reader035.fdocuments.us/reader035/viewer/2022062407/56649e1c5503460f94b0a238/html5/thumbnails/32.jpg)
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
![Page 33: Python – Part 4 Conditionals and Recursion. Modulus Operator Yields the remainder when first operand is divided by the second. >>>remainder=7%3 >>>print.](https://reader035.fdocuments.us/reader035/viewer/2022062407/56649e1c5503460f94b0a238/html5/thumbnails/33.jpg)
Prepared by Department of Preparatory year
Part 4
End