Computing Tools, Week 3

In-class examples of various Python syntax, etc.

Operators:

In [1]:
1. + 2.
Out[1]:
3.0
In [2]:
10.**2
Out[2]:
100.0
In [3]:
10. / 2
Out[3]:
5.0
In [4]:
3. / 2.
Out[4]:
1.5
In [5]:
3 / 2
Out[5]:
1.5
In [6]:
3. // 2.
Out[6]:
1.0
In [7]:
15 % 2
Out[7]:
1
In [8]:
100 - 1000 / 10
Out[8]:
0.0
In [9]:
2 * 3
Out[9]:
6
In [10]:
4 / 2
Out[10]:
2.0
In [11]:
5 > 2
Out[11]:
True
In [12]:
3 < 1
Out[12]:
False
In [13]:
100 >= 100
Out[13]:
True
In [14]:
10 <= 3
Out[14]:
False
In [15]:
a = 2
In [16]:
a == 2
Out[16]:
True
In [17]:
1 & 2
Out[17]:
0
In [18]:
2 & 3
Out[18]:
2
In [19]:
2 & 2
Out[19]:
2
In [20]:
(a == 2) and (3. > 1.)
Out[20]:
True
In [21]:
(a == 2) or (1+1==3)
Out[21]:
True
In [22]:
a != 2
Out[22]:
False

About functions

In [23]:
def foo():
    pass
In [24]:
foo()
In [25]:
f = foo()
type(f)
Out[25]:
NoneType
In [26]:
a
Out[26]:
2
In [27]:
def foo():
    a = 395
In [28]:
foo()
In [29]:
a
Out[29]:
2
In [30]:
def foo(x, y):
    return x * y
In [31]:
foo(2, 3)
Out[31]:
6
In [32]:
foo(2, 13)
Out[32]:
26
In [33]:
def foo(g=9.8):
    return 10*g
In [34]:
foo()
Out[34]:
98.0
In [35]:
foo(3.6)
Out[35]:
36.0
In [36]:
def foo(a, g=9.8):
    return a * g
In [37]:
foo(10)
Out[37]:
98.0
In [38]:
# not allowed (default param first, non default next)  
# def foo(g=9.8, a):
#    return a * g
In [39]:
foo(g=3.6, a=10)
Out[39]:
36.0
In [40]:
def foo(a, g=9.8): # multiple returns
    return a, g
In [41]:
foo(10)
Out[41]:
(10, 9.8)

Passing by value versus passing by reference

In [42]:
def bar(x):
    x = x * 2
    print(x)
In [43]:
y = 2
bar(y)
print(y)
4
2
In [44]:
mylist = [3.14, 9.8]
In [45]:
def bar(somelist):
    somelist[0] = 6.67e-11
    somelist.append(6.022e23)
    print(somelist)
In [46]:
bar(mylist)
[6.67e-11, 9.8, 6.022e+23]
In [47]:
mylist
Out[47]:
[6.67e-11, 9.8, 6.022e+23]
In [48]:
aaronlist = mylist
In [49]:
aaronlist[2] = 365
In [50]:
mylist
Out[50]:
[6.67e-11, 9.8, 365]
In [51]:
mylist[1] = 3.7
In [52]:
aaronlist
Out[52]:
[6.67e-11, 3.7, 365]