03.2.1 LIczby

>>> x = 5 + 2 - 3 * 2    
>>> x
1
>>> 5 / 2
2.5               #1
>>> 5 // 2
2                  #2
>>> 5 % 2
1
>>> 2 ** 8
256
>>> 1000000001 ** 3
1000000003000000003000000001    #3

>>> x = 4.3 ** 2.4
>>> x
33.13784737771648
>>> 3.5e30 * 2.77e45   
9.695e+75
>>> 1000000001.0 ** 3 
1.000000003e+27

>>> (3+2j) ** (2+3j)
(0.6817665190890336-2.1207457766159625j)
>>> x = (3+2j) * (4+9j)
>>> x                               #1
(-6+35j)
>>> x.real 
-6.0
>>> x.imag 
35.0

>>> round(3.49)       #1
3
>>> import math
>>> math.ceil(3.49)  #2
4

>>> x = False
>>> x
False
>>> not x
True
>>> y = True * 2    #1
>>> y
2

03.2.2 Listy

>>> x = ["pierwszy", "drugi", "trzeci", "czwarty"]
 
>>> x[0]                   #1 
'pierwszy'                    #1
>>> x[2]                   #1
'trzeci'
>>> x[-1]               #2 
'czwarty'                #2 
>>> x[-2]               #2
'trzeci'                 #2
>>> x[1:-1]             #2
['drugi', 'trzeci']           #3
>>> x[0:3]                    #3 
['pierwszy', 'drugi', 'trzeci']  #3
>>> x[-2:-1]                  #3
['trzeci']                     #3
>>> x[:3]                     #3
['pierwszy', 'drugi', 'trzeci']  #4
>>> x[-2:]                    #4
['trzeci', 'czwarty']           #4

>>> x = [1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> x[1] = "dwa"
>>> x[8:9] = []
>>> x
[1, 'dwa', 3, 4, 5, 6, 7, 8]
>>> x[5:7] = [6.0, 6.5, 7.0]          #1
>>> x
[1, 'dwa', 3, 4, 5, 6.0, 6.5, 7.0, 8]
>>> x[5:] 
[6.0, 6.5, 7.0, 8]

>>> x = [1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> len(x)
9
>>> [-1, 0] + x                     #1
[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> x.reverse()                    #2 
>>> x
[9, 8, 7, 6, 5, 4, 3, 2, 1]

03.2.3. Krotki

>>> x = [1, 2, 3, 4]
>>> tuple(x)
(1, 2, 3, 4)


>>> x = (1, 2, 3, 4)
>>> list(x)
[1, 2, 3, 4]

03.2.4. Łańcuchy znaków

>>> x = "żyj i    pozwól \t    \tżyć"
>>> x.split()
['żyj', 'i', 'pozwól', 'żyć']
>>> x.replace("   pozwól \t    \tżyć", "ciesz się życiem")
'żyj i ciesz się życiem'
>>> import re 
                         #1
>>> regexpr = re.compile(r"[\t ]+")
>>> regexpr.sub(" ", x)
'żyj i pozwól żyć'


>>> e = 2.718
>>> x = [1, "dwa", 3, 4.0, ["a", "b"], (5, 6)]
>>> print("Stała e ma wartość: ", e, "a lista x zawiera: ", x)   #1
Stała e ma wartość:  2.718 a lista x zawiera:  [1, 'dwa', 3, 4.0, ['a', 'b'], (5, 6)]
>>> print("wartością %s jest: %.2f" % ("e", e))    #2
wartością e jest: 2.72

03.2.5 Słowniki

>>> x = {1: "jeden", 2: "dwa"}
>>> x["pierwszy"] = "jeden"     #A
>>> x[("Delorme", "Ryan", 1995)] = (1, 2, 3)   #1
>>> list(x.keys())
['pierwszy', 2, 1, ('Delorme', 'Ryan', 1995)]
>>> x[1]
'jeden'
>>> x.get(1, "niedostępne")
'jeden'
>>> x.get(4, "niedostępne")         #2
'niedostępne'

03.2.6 Zbiory

>>> x = set([1, 2, 3, 1, 3, 5])   #1
>>> x
{1, 2, 3, 5}    #2
>>> 1 in x                 #3      
True
>>> 4 in x               #3 
False
>>>

03.2.7 Obiekty plików

>>> f = open("mójplik", "w")                      #1
>>> f.write("Pierwsza linia z niezbędnym znakiem początku nowej linii\n")
57
>>> f.write("Druga linia do zapisania w pliku\n")
33
>>> f.close()
>>> f = open("mójplik", "r")            #2
>>> linia1 = f.readline()
>>> linia2 = f.readline()
>>> f.close()
>>> print(linia1, linia2)
Pierwsza linia z niezbędnym znakiem początku nowej linii
Druga linia do zapisania w pliku
>>> import os                                   #4
>>> print(os.getcwd())
C:\test
>>> os.chdir(os.path.join("C:\\", "test", "dokumenty", "obrazy"))     #4
>>> nazwa_pliku = os.path.join("C:\\", "test", "dokumenty", "obrazy", "mójplik")                                  #5
>>> print(nazwa_pliku)
C:\test\dokumenty\obrazy\mójplik
>>> f = open(nazwa_pliku, "r")
>>> print(f.readlinia())
Pierwsza linia z niezbędnym znakiem początku nowej linii
>>> f.close()

03.3.2 Instrukcja if-elif-else

x = 5
if x < 5:
    y = -1
    z = 5
elif x > 5:    #1
    y = 1      #1
    z = 11     #1
else:
    y = 0      #2
    z = 10     #2
print(x, y, z)

03.3.3 Pętla while

u, v, x, y = 0, 0, 100, 30     #1
while x > y:            #2
    u = u + y           #2
    x = x - y           #2 
    if x < y + 2:       #2
        v = v + x       #2
        x = 0           #2
    else:               #2
        v = v + y + 2   #2
        x = x - y - 2   #2
print(u, v)

03.3.4 Pętla for

>>> lista_elementów = [3, "słowo1", 23, 14.0, "słowo2", 49, 64, 70]
>>> for x in lista_elementów:                         #1
    if not isinstance(x, int):
        continue                 #2
    if not x % 7:
        print("Mam liczbę całkowitą podzielną przez siedem: %d" % x)
        break

03.3.5 Definiowanie funkcji

>>> def funkcja1(x, y, z):          #1
...     wartość = x + 2*y + z**2
...     if wartość > 0:
...         return x + 2*y + z**2   #2 
...     else:
...         return 0 
...
>>> u, v = 3, 4
>>> funkcja1(u, v, 2)
15
>>> funkcja1(u, z=v, y=2)      #3
23
>>> def funkcja2(x, y=1, z=1):        #4
...     return x + 2 * y + z ** 2
...
>>> funkcja2(3, z=4)
21
>>> def funkcja3(x, y=1, z=1, *krotka):     #5
...     print((x, y, z) + krotka)
...
>>> funkcja3(2)
(2, 1, 1)
>>> funkcja3(1, 2, 3, 4, 5, 6, 7, 8, 9)
(1, 2, 3, 4, 5, 6, 7, 8, 9)
>>> def funkcja4(x, y=1, z=1, **kwargs):  #6
...     print(x, y, z, kwargs)
>>> funkcja4(1, 2, m=5, n=9, z=3)
1 2 3 {'n': 9, 'm': 5}

03.3.6 Wyjątki

class WyjątekPustyPlik(Exception):
 
    pass

	pliki = ["mój_plik1", "nieistniejący", "pusty_plik" "mój_plik2"]
	for plik in pliki:
		try:
 
        p = open(plik, 'r')
        linia = p.readline()
 
        if linia == "":
            p.close()
            raise WyjątekPustyPlik("%s: jest pusty" % plik)
 
    except IOError as błąd:
        print("Nie powiodło się otwarcie %s" % (plik, błąd.strerror))
    except WyjątekPustyPlik as błąd:
        print(błąd)
    else:
 
        print("%s: %s" % (plik, p.readline()))
    finally:
        print("Czytanie pliku ukończone", plik)


03.3.7 Kontekstowa obsługa błędów i słowo kluczowe with

plik = "mój_plik.txt"
with open(plik, "r") as p:
    for linia in p:
        print(p)


nazwa_pliku = "mój_plik.txt"
try:
    f = open(nazwa_pliku, "r")
    for linia in f:
        print(linia )
    except Exception as e:
        raise e
    finally:
        f.close()


03.5 Programowanie zorientowane obiektowo

>>> import fig
>>> k1 = fig.Koło()         #1
 
>>> k2 = fig.Koło(5, 15, 20)
>>> print(k1)
Koło o promieniu 1 i położeniu (0, 0)
>>> print(k2)         #2

Koło o promieniu 5 i położeniu (15, 20)
>>> k2.pole()
78.53975
>>> k2.przesuń(5,6)         #3
 
>>> print(k2)
Koło o promieniu 5 i położeniu (20, 26)


