0% found this document useful (0 votes)
76 views15 pages

Week 2

Expressions, variables, and for loops are covered. Key points include: - Python arithmetic uses similar operators to Java but with different precedence - Variables do not require declared types and can change type during runtime - The for loop iterates over a range of numbers or a collection, and supports nesting and step values - Strings can be multiplied or concatenated, while integers must be converted to strings to concatenate
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
76 views15 pages

Week 2

Expressions, variables, and for loops are covered. Key points include: - Python arithmetic uses similar operators to Java but with different precedence - Variables do not require declared types and can change type during runtime - The for loop iterates over a range of numbers or a collection, and supports nesting and step values - Strings can be multiplied or concatenated, while integers must be converted to strings to concatenate
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 15

Week 2

expressions, variables, for loops

Special thanks to Scott Shawcroft, Ryan Tucker, Paul Beck, Hélène Martin, Kim Todd, John Kurkowski,
and Marty Stepp for their work on these slides.
Except where otherwise noted, this work is licensed under:
http://creativecommons.org/licenses/by-nc-sa/3.0
Who uses Python?

“ Python is fast enough for our site and allows us to


produce maintainable features in record times, with
a minimum of developers

-Cuong Do, Software Architect, YouTube.com ”


2
Expressions
• Arithmetic is very similar to Java
– Operators: + - * / % (plus ** for exponentiation)
– Precedence: () before ** before * / % before + -
– Integers vs. real numbers

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

3
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
System.out.println(x); print x

double d = 3.2; d = 3.2


d = d / 2; d = d / 2
System.out.println(d); print d

4
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 Python


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

5
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

6
String Concatenation
• Integers and strings cannot be concatenated in Python.
– Workarounds:
str(value) - converts a value into a string
print value, value - prints value twice, separated by a space

>>> x = 4
>>> print "Thou shalt not count to " + x + "."
TypeError: cannot concatenate 'str' and 'int' objects

>>> print "Thou shalt 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.

7
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

8
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

9
Nested Loops
• Nested loops are often replaced by string * and +
Java
....1
1 for (int line = 1; line <= 5; line++) {
...2 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)

10
Constants
• Python doesn't really have constants.
– Instead, declare a variable at the top of your code.
– All methods will be able to use this "constant" 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
11
Exercise
• Rewrite the Mirror lecture program in Python. Its output:
#================#
| <><> |
| <>....<> |
| <>........<> |
|<>............<>|
|<>............<>|
| <>........<> |
| <>....<> |
| <><> |
#================#

– Make the mirror resizable by using a "constant."

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

13
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

14
Exercise Solution 2
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