Outline for October 2, 2024
Reading: text, §2, 5; “Truth Tables: and, or, and not”
Due: Homework 1, due October 14, 2024
- Decision structures [if0.py]
- If statement
- Executes once, based on condition
- Syntax
- Conditions
- Resolves to boolean value
- Literal booleans: True (1), False (0)
- Testable as true or false
- Relational operators
- Use two arithmetic expressions connected with relational operators to create a boolean
- Relational operators: >, >=, <, <=, ==, !=
- Precedence: resolved after arithmetic operators
- 6 > 2 + 3; "UCD" == "Sac State"
- Two-way decisions [if1.py]
- if …\ else statements
- One condition, two possible code blocks
- Syntax
- else very powerful when the positive condition is easy to describe but not the negative
- String comparison example
- Multi-way decisions [if2.py]
- Can execute code based on several conditions
- elif (else if)
- Syntax
- else only reached if all previous conditions false
- Nested if statements
- Conditional expressions [condexp.py]
- Iteration
- Definite loops: execute a specific (definite) number of times
- Indefinite loops: execute until a general condition is false
- While loops [while.py]
- Contrast with for
- break causes program to fall out of loop (works with for too) [loop1.py]
- continue causes program to start loop over immediately (works with for too) [loop1.py]
- For loops
- General form: for i in iterator
- Iterator is either list or something that generates a list
- Very common form: for i in range(1, 10)
- range() in detail [for.py]
- range(10) gives 0 1 2 3 4 5 6 7 8 9
- range(3, 10) gives 3 4 5 6 7 8 9
- range(2, 10, 3) gives 2 5 8
- range(10, 2, -3) gives 10 7 4
- continue and break statements in loops [loop1.py]
- Exception Keyboard Interrupt — user hit the interrupt key (usually control-C)
- Program: counting to 10 [toten.py]
- Program: sum the first 10 squares [sumsq.py]
- Program: Fibonacci numbers [fib.py]