Boston Python Workshop 3/Data types

From OpenHatch wiki
Revision as of 15:53, 12 June 2011 by imported>Jesstess (→‎List initialization)

Numbers: integers and floats

  • Integers don't have a decimal place.
  • Floats have a decimal place.
>>> type(1)
<type 'int'>
>>> type(1.0)
<type 'float'>

Math: addition, subtraction, multiplication

addition: 2 + 2
subtraction: 0 - 2
multiplication: 2 * 3

Math: division

>>> 4 / 2
2
>>> 1 / 2
0
  • Integer division produces an integer. You need a number that knows about the decimal point to get a decimal out of division:
>>> 1.0 / 2
0.5
>>> float(1) / 2
0.5

Strings

  • String are surrounded by quotes.
  • Use triple-quotes (""") to create whitespace-preserving multi-line strings.
>>> "Hello"
'Hello'
>>> print """In 2009,
...     The monetary component of the Nobel Prize
...         was US $1.4 million."""
In 2009,
    The monetary component of the Nobel Prize
        was US $1.4 million.
>>> type("Hello")
<type 'str'>

String concatenation with '+': "Hello" + "World"
Printing strings with '+': print "Hello" + "World"
Printing strings with ',': print "Hello", "World", 1

Booleans

  • There are two booleans, True and False.
  • Use booleans to make decisions.
>>> type(True)
<type 'bool'>
>>> type(False)
<type 'bool'>

Containment with 'in' and 'not in'

<pr> >>> "H" in "Hello" True >>> "a" not in ["a", "b", "c"] False

Equality

  • == tests for equality
  • != tests for inequality
  • <, <=, >, and >= have the same meaning as in math class.
>>> 0 == 0
True
>>> 0 == 1
False
"a" != "a"
"a" != "A"

Use with if/else blocks

  • When Python encounters the if keyword, it evaluates the expression following the keyword and before the colon. If that expression is True, Python executes the code in the indented code block under the if line. If that expression is False, Python skips over the code block.
temperature = 32
if temperature > 60 and temperature < 75:
    print "It's nice and cozy in here!"
else:
    print "Too extreme for me."

Lists

  • Use lists to store data where order matters.
  • Lists are indexed starting with 0

List initialization

>>> my_list = []
>>> my_list
[]
>>> your_list = ["a", "b", "c", 1, 2, 3]
>>> your_list
['a', 'b', 'c', 1, 2, 3]

Access and adding elements to a list

>>> len(my_list)
0
>>> my_list[0]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range
>>> my_list.append("Alice")
>>> my_list
['Alice']
>>> len(my_list)
1
>>> my_list[0]
'Alice'
>>> my_list.insert(0, "Amy")
>>> my_list
['Amy', 'Alice']
>>> my_list = ['Amy', 'Alice']
>>> 'Amy' in my_list
True
>>> 'Bob' in my_list
False

Changing elements in a list

>>> your_list = []
>>> your_list.append("apples")
>>> your_list[0]
'apples'
>>> your_list[0] = "bananas"
>>> your_list
['bananas']

Slicing lists

>>> her_list = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
>>> her_list[0]
'a'
>>> her_list[0:3]
['a', 'b', 'c']
>>> her_list[:3]
['a', 'b', 'c']
>>> her_list[-1]
'h'
>>> her_list[5:]
['f', 'g', 'h']
>>> her_list[:]
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']

Sharing versus copying

Sharing

>>> my_list
['Alice']
>>> your_list = my_list
>>> your_list
['Alice']
>>> my_list[0] = "Bob"
>>> my_list
['Bob']
>>> your_list
['Bob']

Copying

>>> my_list
['Alice']
>>> your_list = my_list[:]
>>> my_list[0] = "Bob"
>>> my_list
['Bob']
>>> your_list
['Alice']

Strings are a lot like lists

>>> my_string = "Hello World"
>>> my_string[0]
'H'
>>> my_string[:5]
'Hello'
>>> my_string[6:]
'World'
>>> my_string = my_string[:6] + "Jessica"
>>> my_string
'Hello Jessica'

Types

>>> type(my_list)
<type 'list'>