1. Podstawy. ******************************************************************

## Liczby

>>> 2 ** 16           # 2 podniesione do potgi 16
65536
>>> 2 / 5, 2 / 5.0    # integer: / obcina, zmiennoprzecinkowa: / nie obcina
(0, 0.4) 


## acuchy

>>> "mielonka" + "jajka"     # czenie
'mielonkajajka'
>>> S = "szynka"
>>> "jajka " + S
'jajka szynka'
>>> S * 5                    # powtarzanie
'szynkaszynkaszynkaszynkaszynka'
>>> S[:0]                    # pusty wycinek z przodu--[0:]
''
>>> "zielone %s i %s" % ("jajka", S)    # formatowanie
'zielone jajka i szynka'

## Krotki

>>> ('x',)[0]                # indeksowanie jednopozycyjnej krotki
'x'
>>> ('x', 'y')[1]            # indeksowanie dwupozycyjnej krotki
'y'

## Listy

>>> L = [1,2,3] + [4,5,6]    # operacje na listach
>>> L, L[:], L[:0], L[-2], L[-2:]
([1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6], [], 5, [5, 6])
>>> ([1,2,3]+[4,5,6])[2:4]
[3, 4]
>>> [L[2], L[3]]             # pobiera z offsetw, zapisuje na licie
[3, 4]
>>> L.reverse(); L           # metoda: odwraca list na miejscu
[6, 5, 4, 3, 2, 1]
>>> L.sort(); L              # metoda: sortuje list na miejscu
[1, 2, 3, 4, 5, 6]
>>> L.index(4)               # metoda: offset pierwszych 4 (szukanie)
3

## Sowniki

>>> {'a':1, 'b':2}['b']      # indeksowanie sownika wedug klucza
2
>>> D = {'x':1, 'y':2, 'z':3}
>>> D['w'] = 0               # tworzenie nowego wpisu
>>> D['x'] + D['w']
1
>>> D[(1,2,3)] = 4           # krotka uywana jako klucz (niezmienny)
>>> D
{'w': 0, 'z': 3, 'y': 2, (1, 2, 3): 4, 'x': 1}
>>> D.keys(), D.values(), D.has_key((1,2,3))         # metody
(['w', 'z', 'y', (1, 2, 3), 'x'], [0, 3, 2, 4, 1], 1)

## Puste

>>> [[]], ["",[],(),{},None]      # wiele niczego
([[]], ['', [], (), {}, None])


2. Indeksowanie i wycinanie. **************************************************

>>> L = [1, 2, 3, 4]
>>> L[4]
Traceback (innermost last):
  File "<stdin>", line 1, in ?
IndexError: list index out of range

>>> L[-1000:100]
[1, 2, 3, 4]

>>> L[3:1]
[]

>>> L
[1, 2, 3, 4]
>>> L[3:1] = ['?']
>>> L
[1, 2, 3, '?', 4]


3. Indeksowanie, wycinanie i usuwanie. ****************************************

>>> L = [1,2,3,4]
>>> L[2] = []
>>> L
[1, 2, [], 4]
>>> L[2:3] = []
>>> L
[1, 2, 4]
>>> del L[0]
>>> L
[2, 4]
>>> del L[1:]
>>> L
[2]
>>> L[1:2] = 1
Traceback (innermost last):
  File "<stdin>", line 1, in ?
TypeError: illegal argument type for built-in operation


4. Przypisanie krotki. ********************************************************

>>> X = 'mielonka'
>>> Y = 'jajka'
>>> X, Y = Y, X
>>> X
'jajka'
>>> Y
'mielonka'


5. Klucze sownika. ***********************************************************

>>> D = {}
>>> D[1] = 'a'
>>> D[2] = 'b'
>>> D[(1, 2, 3)] = 'c'
>>> D
{1: 'a', 2: 'b', (1, 2, 3): 'c'}


6. Indeksowanie sownikw. ****************************************************

>>> D = {'a':1, 'b':2, 'c':3}
>>> D['a']
1
>>> D['d']
Traceback (innermost last):
  File "<stdin>", line 1, in ?
KeyError: d
>>> D['d'] = 4
>>> D
{'b':2, 'd':4, 'a':1, 'c':3}
>>>
>>> L = [0,1]
>>> L[2]
Traceback (innermost last)"
  File "<stdin>", line 1, in ?
IndexError: list index out of range
>>> L[2] = 3
Traceback (innermost last):
  File "<stdin>", line 1, in ?
IndexError: list assignment index out of range


7. Dziaania podstawowe. ******************************************************

>>> "x" + 1
Traceback (innermost last):
  File "<stdin>", line 1, in ?
TypeError: illegal argument type for built-in operation
>>>
>>> {} + {}
Traceback (innermost last):
  File "<stdin>", line 1, in ?
TypeError: bad operand type(s) for +
>>>
>>> [].append(9)
>>> "".append('s')
Traceback (innermost last):
  File "<stdin>", line 1, in ?
AttributeError: attribute-less object
>>>
>>> {}.keys()
[]
>>> [].keys()
Traceback (innermost last):
  File "<stdin>", line 1, in ?
AttributeError: keys
>>>
>>> [][:]
[]
>>> ""[:]
''


8. Indeksowanie acuchw. ****************************************************

>>> S = "mielonka"
>>> S[0][0][0][0][0]
'm'
>>> L = ['m', 'i']
>>> L[0][0][0]
'm'


9. Typy niezmienne. ***********************************************************

>>> S = "spam"
>>> S = S[0] + 'l' + S[2:]
>>> S
'slam'
>>> S = S[0] + 'l' + S[2] + S[3]
>>> S
'slam'


10. Zagniedanie. ************************************************************

>>> ja = {'imie':('mark', 'e', 'lutz'), 'wiek':'?', 'zawod':'inzynier'}
>>> ja['zawod']
'inzynier'
>>> ja['imie'][2]
'lutz'


11. Pliki. ********************************************************************

% cat maker.py
plik = open('mojplik.txt', 'w')
plik.write('Witaj swiecie plikow!\n')
plik.close()                       # close nie zawsze jest potrzebne

% cat reader.py
plik = open('mojplik.txt', 'r')
print plik.read()

% python maker.py
% python reader.py
Witaj swiecie plikow!

% ls -l mojplik.txt
-rwxrwxrwa  1 0       0      19 Apr 13 16:33 mojplik.txt


12. Powtrka z funkcji dir. ***************************************************

>>> [].__methods__
['append', 'count', 'index', 'insert', 'remove', 'reverse', 'sort']
>>> dir([])
['append', 'count', 'index', 'insert', 'remove', 'reverse', 'sort']
