TEI Dr Wojciech Palubicki
Tree growth (PhD) Prof. Przemyslaw Prusinkiewicz Lab PhD 2012 Modeling Scale
Moss branching Dr. Yoan Coudert, Dr. Jill Harrison and Prof. Ottoline Leyser Tree growth (PhD) Prof. Przemyslaw Prusinkiewicz Lab elife, 2015 PhD 2012 Modeling Scale
Agent-based auxin transport models Prof. Ottoline Leyser Lab and Dr. Laura Brown Moss branching Dr. Yoan Coudert, Dr. Jill Harrison and Prof. Ottoline Leyser Tree growth (PhD) Prof. Przemyslaw Prusinkiewicz Lab In prep. elife, 2015 PhD 2012 Modeling Scale
MATPLOTLIB
SciPy [ numeryczne metody] linalg cluster io ndimage signal stats special fftpack sparse optimize interpolate maxentropy odr integrate weave NumPy [struktura danych] fft random linalg NDArray wielo-wymiarowa tablica UFunc szybkie operacje na tablicach
vpython
Języki Programistyczne Microcode Machine code Assembly Language (symboliczna reprezentacja machine code) Low-level Programming Language (FORTRAN, COBOL, BASIC, C) High-level Programming Language (Java, Python, Prolog, MATLAB)
Kompilacja (Compilation) Kompilator (Compiler) to program który konwertuje program napisany w języku na wyższym poziome do ekwiwalentnego programu na niższym poziomie Zalety: Kompiluj raz, wywołaj program wiele razy Kompilator może przyspieszyć działanie programu, nawet jak optymizacja może długi czas zając Wada: Debugowanie kodu wymaga dużego wsparcia narzędzi programistycznych
Interpretowany kod Kod który nie jest kompilowany jest interpretowany Python korzysta z stwarzania byte-code przed interpretacja (pliki.pyc) Zalety: Stwarza wrażenie że rzeczywiście komputer działa za pomocy języka na wysokim poziomie Lepszy debugging Łatwiej dodać kod w czasie działania programu Wada: Wolniejszy
Python Python jest dynamiczny zinterpretowany język programistyczny Nie ma deklaracji typów zmiennych, parametrów, funkcji lub metod w kodzie źródłowym W czasie działania programu typy wszystkich obiektów są ustalone przez interpretera
Python Interpreter >>> a = 6 >>> a 6 >>> a + 2 8 >>> a = 'hallo' 'hallo' >>> len(a) 5
Python Interpreter >>> a = 6 >>> a 6 >>> a + 2 8 >>> a = 'hallo' 'hallo' >>> len(a) 5 Uruchomić shella IPython
Wykresy
Wykresy
Wykresy
Wykresy
Wykresy
Wykresy
plt.plot?
stary nowy
stary nowy
Legend
Przykład
Kod Źródłowy Kod źródłowy Pythona używa rozszerzenie.py i te pliki są nazwane modułami (modules) Żeby uruchomić np. moduł Pythona hallo.py można np. użyć komendę python hallo.py Wojtek lub run hallo.py Wojtek z shellu
Instrukcje warunkowe: if - else
Funkcje Za pomocy komendy def Wcięcie (Indentation) w Pythonie zmienia znaczenie kodu Logiczny blok kodu powinien zawsze mieć takie same wcięcie
Funkcje Za pomocy komendy def Wcięcie (Indentation) w Pythonie zmienia znaczenie kodu Logiczny blok kodu powinien zawsze mieć takie same wcięcie
Kod sprawdzony w czasie działania Kod poprawnie będzie działał w przypadku jak imię jest różne od Wojtek mimo tego ze kod źródłowy zawiera ewidentny błąd
Python Modules Wypisanie nazwy modułu i wciśnięcia klawisza TAB nam wyświetli wszystkie definicje modułu (wyrażenia zdefiniowane za pomocy komendy def)
Opis modułów i funkcji Opis modułów lub ich funkcji można uzyskać za pomocy help(), dir() lub?
Python Strings Python posiada klasę str która ma wiele przydatnych narzędzi do obsługi stringów Stringi mogą być zaznaczane za pomocy ' lub Używanie odwrotnego ukośnika \ działa normalnie, np. \n,\\ stwarza nowa linijkę Stringi są niezmienne Polskie znaki: # -*- coding: utf-8 -*- (w nagłówku) Używać litery u przed
String splicing Odniesienie do pojedynczych liter realizuje się za pomocy nawiasów [] (pierwsza instancja to 0, np. str[1] jest a w stringu hallo )
Zadania Napisz funkcje która biedzę brała liczbę jako input i oddaje string Liczba ciasteczek jest: # w przypadku jak liczba jest mniejsza lub równa od 9 lub za dużo ciasteczek jak liczba jest większa 9
Zadania Napisz funkcje która biedzę brała liczbę jako input i oddaje string Liczba ciasteczek jest: # w przypadku jak liczba jest mniejsza lub równa od 9 lub za dużo ciasteczek jak liczba jest większa 9 Napisz funkcje która okraja pierwsze dwa i ostatnie dwie litery dowolnego stringu
Zadania Napisz funkcje która biedzę brała liczbę jako input i oddaje string Liczba ciasteczek jest: # w przypadku jak liczba jest mniejsza lub równa od 9 lub za dużo ciasteczek jak liczba jest większa 9 Napisz funkcje która okraja pierwsze dwa i ostatnie dwie litery dowolnego stringu Napisz funkcje która zastępuje wszystkie litery które są identyczne z pierwsza litera dowolnego stringu o długości 1 lub więcej znakiem * ale nie zmienia pierwszą literę (np. armata arm*t*)
Zadania Napisz funkcje która biedzę brała liczbę jako input i oddaje string Liczba ciasteczek jest: # w przypadku jak liczba jest mniejsza lub równa od 9 lub za dużo ciasteczek jak liczba jest większa 9 Napisz funkcje która okraja pierwsze dwa i ostatnie dwie litery dowolnego stringu Napisz funkcje która zastępuje wszystkie litery które są identyczne z pierwsza litera dowolnego stringu o długości 1 lub więcej znakiem * ale nie zmienia pierwszą literę (np. armata arm*t*) Napisz funkcje która z dwóch stringów wprowadzonych wydaje dwie nowe stringi, gdzie pierwsze dwie litery są zamienione
Python Lists Listy są stwarzane za pomocą []
Python Lists Listy są stwarzane za pomocą [] Nie kopiuje listy!
Python Lists Listy są stwarzane za pomocą [] [1,2,3] liczby a
FOR i IN Pętle w pythonie się definiuję na przykład za pomocy komendy : for var in list
FOR i IN Pętle w pythonie się definiuję na przykład za pomocy komendy : for var in list
FOR i IN Pętle w pythonie się definiuję na przykład za pomocy komendy : for var in list
FOR i IN Pętle w pythonie się definiuję na przykład za pomocy komendy : for var in list
FOR i IN Pętle w pythonie się definiuję na przykład za pomocy komendy : for var in list
Slicing działa jak w przypadku stringow, np. liczby[1:] 2, 3
Sortowanie Za pomocy funkcji sorted()
Sortowanie za pomocy sort()
Sortowanie za pomocy sort()
Zadania Na danej liście stringów napisz funkcje która liczy ile stringów w liście maja długość większa od 2 i pierwsza litera jest taka sama jak ostatnia
Zadania Na danej liście stringów napisz funkcje która liczy ile stringów w liście maja długość większa od 2 i pierwsza litera jest taka sama jak ostatnia Na danej liście stringów napisz funkcje która zwraca sortowana listę ale podaje najpierw wszystkie stringi które rozpoczynają się z litera x (zdefiniuj dwie listy w funkcji żeby rozwiązać zadanie)
Zadania Na danej liście stringów napisz funkcje która liczy ile stringów w liście maja długość większa od 2 i pierwsza litera jest taka sama jak ostatnia Na danej liście stringów napisz funkcje która zwraca sortowaną listę ale podaje najpierw wszystkie stringi które rozpoczynają się z litera x (zdefiniuj dwie listy w funkcji żeby rozwiązać zadanie) Na danej liście liczb, zwróć listę liczb gdzie wszystkie sąsiednie liczby o tej samej wartości są do jednej liczby zredukowane (np. [1,2,2,3] [1,2,3])