dr Bogna Zacny

Katedra Inżynierii Wiedzy

Wydział Informatyki i Komunikacji

python

Agenda

  • Informatyka na Uniwersytecie Ekonomicznym w Katowicach
  • Python
  • Przetwarzanie obrazów

Kierunki informatyczne na UE

I stopień

Informatyka

Specjalności

Informatyka i Ekonometria

Specjalności

Python

  • Język programowania wysokiego poziomu, ogólnego przeznaczania
  • Wieloparadygmatowy: obiektowy, imperatywny, funkcyjny
  • Skrypty nie są kompilowane tylko interpretowane przez dedykowany interpreter

Python

  • Charakteryzuje się dynamicznym systemem typów

Python

  • Charakteryzuje się dynamicznym systemem typów
cena = 10
print(type(cena))
<class 'int'>

Python

  • Charakteryzuje się dynamicznym systemem typów
cena = 10
print(type(cena))
<class 'int'>
cena = 10 + 0.9
print(type(cena))

Python

  • Charakteryzuje się dynamicznym systemem typów
cena = 10
print(type(cena))
<class 'int'>
cena = 10 + 0.9
print(type(cena))
<class 'float'>

Python

  • Charakteryzuje się automatycznym zarządzaniem pamięcią
cena = 10
print(id(cena))
14071341129120

cena = 10 + 0.9
print(id(cena))
140713411291232

Python

  • Charakteryzuje się przejrzystością i zwięzłością kodu źródłowego
import this
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!

Zmienna

zmienna w pythonie to nazwa nadana wartości lub kolekcji wartości

Zmienna

zmienna w pythonie to nazwa nadana wartości lub kolekcji wartości

-> operator przypisania

=

Zmienna

zmienna w pythonie to nazwa nadana wartości lub kolekcji wartości

=

-> operator przypisania

nazwa = wartosc

Zmienna

wzrost = 1.7

print(f'Wzrost Janka wynosi {wzrost}')

Zmienna

wzrost = 1.7
waga = 70

print(waga / wzrost**2)

Zmienna

wzrost = 1.7
waga = 70

bmi = waga / wzrost**2

print(bmi)

Typy danych

Atomowe 

 

Kolekcje

Typy danych

Atomowe

Typy danych

tekstowe

a = 'python'
b = '1'
c = '.'

Atomowe

Typy danych

tekstowe

a = 'python'
b = '1'
c = '.'

liczbowe

a = 123
b = 12.3
c = 0.8721

Atomowe

Typy danych

tekstowe

liczbowe

logiczna

a = False
b = True
a = 'python'
b = '1'
c = '.'
a = 123
b = 12.3
c = 0.8721

Atomowe

Typy danych

Kolekcje

Typy danych

lista =>[ ]
a = ['mój', 'samochód', 'mój', 'wybór']
b = ['Uczelnia', 'UEwK-ce', 2019]
c = [1, 1, 2, 3, 4.5, 1201, 1]

Kolekcje

Typy danych

lista =>[ ]
d = 'Meritum'
a = ['mój', 'samochód', 'mój', 'wybór']
b = ['Uczelnia', 'UEwK-ce', 2022]
c = [1, 1, 2, 3, 4.5, 1201, 1]

Kolekcje

-> string

Typy danych

zbiór =>{ }
a = {'samochód', 'mój', 'wybór'}
b = {'Uczelnia', 'UEwK-ce', 2019}
c = {1, 2, 3, 4.5, 1201}
lista =>[ ]
a = ['mój', 'samochód', 'mój', 'wybór']
b = ['Uczelnia', 'UEwK-ce', 2022]
c = [1, 1, 2, 3, 4.5, 1201, 1]

Kolekcje

Typy danych

krotka =>( )
a = ("Jan", "Kowalski", "80010103754")
zbiór =>{ }
a = {'samochód', 'mój', 'wybór'}
b = {'Uczelnia', 'UEwK-ce', 2019}
c = {1, 2, 3, 4.5, 1201}
lista =>[ ]
a = ['mój', 'samochód', 'mój', 'wybór']
b = ['Uczelnia', 'UEwK-ce', 2022]
c = [1, 1, 2, 3, 4.5, 1201, 1]

Kolekcje

Typy danych

słowik =>{:}
a = {'imię': 'Jan', 'nazwisko': 'Nowak', 'wiek': 23}
b = {'dok1': ['mój', 'samochód', 'mój', 'wybór'],
     'dok2': ['mocna', 'herbata', 'na', 'nastrój']}

dok1 = {'mój': 2, 'samochód': 1, 'wybór': 1}

Kolekcje

Wycinanie list

Wycinanie list

[ 'Thor', 'Storm', 'Wolverine', 'Hulk', 'Wasp' ]

Wycinanie list

[ 'Thor', 'Storm', 'Wolverine', 'Hulk', 'Wasp' ]

Wycinanie list

[ 'Thor', 'Storm', 'Wolverine', 'Hulk', 'Wasp' ]
[ 'Storm',  'Wolverine']

Wycinanie list

[ 'Thor', 'Storm', 'Wolverine', 'Hulk', 'Wasp' ]

Indeksowanie

Wycinanie list

[ 'Thor', 'Storm', 'Wolverine', 'Hulk', 'Wasp' ]

Indeksowanie

[ 'Thor', 'Storm', 'Wolverine', 'Hulk', 'Wasp' ]
0
1
2
3
4

Wycinanie list

Indeksowanie

Wycinanie list

[ 'Thor', 'Storm', 'Wolverine', 'Hulk', 'Wasp' ]
0
1
2
3
4
[]

-> operator wycinania

Wycinanie list

[ 'Thor', 'Storm', 'Wolverine', 'Hulk', 'Wasp' ]
0
1
2
3
4
[]
lista[indeks]

-> operator wycinania

Wycinanie list

[ 'Thor', 'Storm', 'Wolverine', 'Hulk', 'Wasp' ]
0
1
2
3
4
[]
lista[indeks]
lista[start:stop]

-> operator wycinania

Iteracja

Pętla iteracyjna     =>

Pętla repetycyjna  =>

for
while

Iteracja

for [każdego_elementu] in [kolekcji]:
     wykonaj_instrukcje

Pętla iteracyjna

Iteracja

for i in range(5):
    print(i)

Pętla iteracyjna

for

Iteracja

for i in range(5):
    print(i)

Pętla iteracyjna

0
1
2
3
4
for

Iteracja

for i in [11,22,33]:
    print(i)

Pętla iteracyjna

11
22
33
for

Iteracja

for i in 'ABC':
    print(i)

Pętla iteracyjna

A
B
C
for

Iteracja

liczby = [1,2,3,4]

for liczba in liczby:
  potega = liczba * liczba
  print(potega)

Pętla iteracyjna

1
4
8 16

for

Iteracja

liczby = [1,2,3,4]
potegi = []

for liczba in liczby:
  potega = liczba * liczba
  potegi.append(potega)
  
print(potegi)

Pętla iteracyjna - tworzenie nowej kolekcji

[1, 4, 9, 16]

Instrukcja warunkowa

Instrukcja warunkowa   =>

if

Instrukcja warunkowa

if [zapytanie warunkowe]:
     wykonaj_instrukcje_jeżeli_True

Instrukcja warunkowa

if [zapytanie warunkowe]:
     wykonaj_instrukcje_jeżeli_True
if [zapytanie warunkowe]:
     wykonaj_instrukcje_jeżeli_True

else:

     wykonaj_instrukcje_jeżeli_False

Instrukcja warunkowa

if x > 0:
    print('Liczba jest dodatnia')
if

Instrukcja warunkowa

if x > 0:
    print('Liczba jest dodatnia')
else:
    print('Liczba jest ujemna')
if x > 0:
    print('Liczba jest dodatnia')
if
if
else

Instrukcja warunkowa

if x > 0:
    print('Liczba jest dodatnia')
if x > 0:
    print('Liczba jest dodatnia')
else:
    print('Liczba jest ujemna')
if x > 0:
    print('Liczba jest dodatnia')
elif x == 0:
    print('Zero')
else:
    print('Liczba jest ujemna')
if
if
else
if
elif
else

Przetwarzanie obrazów

Obraz

Obraz - bitmapa

Obraz - piksel

Obraz - RGB

R

G

B

0-255

0-255

0-255

Obraz - RGB

50

91

113

Dziękuje za uwagę
bogna.zacny@uekat.pl

Meritum_python_2425

By Bogna Zacny

Meritum_python_2425

  • 124