Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
52 views

Unit 2: Expressions and Variables For Loops

This document provides an introduction to expressions, variables, data types, and for loops in Python. It explains arithmetic operators and precedence, how to declare and assign variables without specifying types, string operations, and how to use basic for loops to iterate over a range of numbers or a concatenated range. Examples are given for each concept to demonstrate Python syntax compared to Java. Exercises at the end show solutions for rewriting programs using these Python features.
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
52 views

Unit 2: Expressions and Variables For Loops

This document provides an introduction to expressions, variables, data types, and for loops in Python. It explains arithmetic operators and precedence, how to declare and assign variables without specifying types, string operations, and how to use basic for loops to iterate over a range of numbers or a concatenated range. Examples are given for each concept to demonstrate Python syntax compared to Java. Exercises at the end show solutions for rewriting programs using these Python features.
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 15

Unit 2

Expressions and variables; for loops


Special thanks to Roy McElmurry, John Kurkowski, Scott Shawcroft, Ryan Tucker, Paul Beck for their work.
Except where otherwise noted, this work is licensed under:
http://creativecommons.org/licenses/by-nc-sa/3.0
Expressions
• Arithmetic is very similar to Java
 Operators: + - * / % (and ** for exponentiation)
 Precedence: () then ** then * / % then + -
 Integers vs. real numbers

>>> 1 + 1
2
>>> 1 + 3 * 4 - 2
11
>>> 7 / 2
3
>>> 7.0 / 2
3.5
>>> 10 ** 6
1000000

2
Variables
• Declaring
 no type is written; same syntax as assignment
• Operators
 no ++ or -- operators (must manually adjust by 1)

Java Python
int x = 2; x = 2
x++; x = x + 1
System.out.println(x) print(x)
;
x = x * 8
x = x * 8; print(x)
System.out.println(x)
; d = 3.2
d = d / 2
double d = 3.2;
print(d)
d = d / 2;
System.out.println(d)
; 3
Types
• Python is looser about types than Java
 Variables' types do not need to be declared
 Variables can change types as a program is running

Value Java type Python type


42 int int
3.14 double float
"ni!" String str

4
String Multiplication
• Python strings can be multiplied by an integer.
 The result is many copies of the string concatenated together.

>>> "hello" * 3
"hellohellohello"

>>> print(10 * "yo ")


yo yo yo yo yo yo yo yo yo yo

>>> print(2 * 3 * "4")


444444

5
String Concatenation
• Integers and strings cannot be concatenated in Python.
 Workarounds:
str(value) - converts a value into a string
print(expr, expr) - prints two items on the same
line
>>> x = 4
>>> print(”You should not count to " + x + ".")
TypeError: cannot concatenate 'str' and 'int' objects

>>> print("You should not count to " + str(x) + ".")


Thou shalt not count to 4.

>>> print(x + 1, "is out of the question.")


5 is out of the question.

6
The for Loop
for name in range(max):
statements

 Repeats for values 0 (inclusive) to max (exclusive)

>>> for i in range(5):


... print(i)
0
1
2
3
4

7
for Loop Variations
for name in range(min, max):
statements
for name in range(min, max, step):
statements
 Can specify a minimum other than 0, and a step other than 1

>>> for i in range(2, 6):


... print(i)
2
3
4
5
>>> for i in range(15, 0, -5):
... print(i)
15
10
5

8
Nested Loops
• Nested loops are often replaced by string * and +
Java
....1
...2 1 for (int line = 1; line <= 5; line++) {
2 for (int j = 1; j <= (5 - line); j++) {
..3 3 System.out.print(".");
.4 4 }
5 System.out.println(line);
5 6 }

Python
1 for line in range(1, 6):
2 print((5 - line) * "." + str(line))

9
Exercise
• Rewrite the Mirror lecture program in Python. Its output:

#================#
| <><> |
| <>....<> |
| <>........<> |
|<>............<>|
|<>............<>|
| <>........<> |
| <>....<> |
| <><> |
#================#

10
Exercise Solution
def bar():
print "#" + 16 * "=" + "#"
def top():
for line in range(1, 5):
# split a long line by ending it with \
print "|" + (-2 * line + 8) * " " + \
"<>" + (4 * line - 4) * "." + "<>" + \
(-2 * line + 8) * " " + "|"
def bottom():
for line in range(4, 0, -1):
print "|" + (-2 * line + 8) * " " + \
"<>" + (4 * line - 4) * "." + "<>" + \
(-2 * line + 8) * " " + "|"
# main
bar()
top()
bottom()
bar()

11
Concatenating Ranges
• Ranges can be concatenated with +
 Can be used to loop over a disjoint range of numbers

>>> range(1, 5) + range(10, 15)


[1, 2, 3, 4, 10, 11, 12, 13, 14]

>>> for i in range(4) + range(10, 7, -1):


... print(i)
0
1
2
3
10
9
8

12
Exercise Solution 2
def bar():
print "#" + 16 * "=" + "#"
def mirror():
for line in range(1, 5) + range(4, 0, -1):
print "|" + (-2 * line + 8) * " " + \
"<>" + (4 * line - 4) * "." + "<>" + \
(-2 * line + 8) * " " + "|"
# main
bar()
mirror()
bar()

13
Constants
• Python doesn't really have constants.
 Instead, declare a "global" variable at the top of your code.
 All methods will be able to use this value.

constant.py
1 MAX_VALUE = 3
2
3 def printTop():
4 for i in range(MAX_VALUE):
5 for j in range(i):
6 print(j)
7 print()
8
9 def printBottom():
10 for i in range(MAX_VALUE, 0, -1):
11 for j in range(i, 0, -1):
12 print(MAX_VALUE)
13 print()
14
Exercise Solution 3
SIZE = 4
def bar():
print "#" + 4 * SIZE * "=" + "#"
def mirror():
for line in range(1, SIZE + 1) + range(SIZE, 0, -1):
print "|" + (-2 * line + 2 * SIZE) * " " + \
"<>" + (4 * line - 4) * "." + "<>" + \
(-2 * line + 2 * SIZE) * " " + "|"
# main
bar()
mirror()
bar()

15

You might also like