# Outline for January 14

Due: Homework 1, due on January 18 at 11:55pm

1. Simultaneous assignment [swap.py]
1. Simple assignment: variable = expression
2. Simultaneous assignment: variableA, variableB = expressionA, expressionB
2. Decision structures [if0.py]
1. If statement
2. Executes once, based on condition
3. Syntax
3. Conditions
1. Resolves to boolean value
2. Literal booleans: True (1), False (0)
3. Testable as true or false
4. Relational operators
1. Use two arithmetic expressions connected with relational operators to create a boolean
2. Relational operators: >, >=, <, <=, ==, !=
3. Precedence: resolved after arithmetic operators
4. 6 > 2 + 3; "UCD" == "Sac State"
4. Two-way decisions [if1.py]
1. if &hellip else statements
2. One condition, two possible code blocks
3. Syntax
4. else very powerful when the positive condition is easy to describe but not the negative
5. String comparison example
5. Multi-way decisions [if2.py]
1. Can execute code based on several conditions
2. elif (else if)
3. Syntax
4. else only reached if all previous conditions false
5. Nested if statements
6. Iteration
1. Definite loops: execute a specific (definite) number of times
2. Indefinite loops: execute until a general condition is false
7. While loops [while.py]
1. Contrast with for
2. break causes program to fall out of loop (works with for too) [loop1.py]
3. continue causes program to start loop over immediately (works with for too) [loop1.py]
8. For loops
1. General form: for i in iterator
2. Iterator is either list or something that generates a list
3. Very common form: for i in range(1, 10)
9. range() in detail [for.py]
1. range(10) gives 0 1 2 3 4 5 6 7 8 9
2. range(3, 10) gives 3 4 5 6 7 8 9
3. range(2, 10, 3) gives 2 5 8
4. range(10, 2, -3) gives 10 7 4
10. Program: counting to 10 [toten.py]
11. Program: sum the first 10 squares [sumsq.py]
12. Program: Fibonacci numbers [fib.py]

 Matt Bishop Department of Computer Science University of California at Davis Davis, CA 95616-8562 USA