Python in the Enterprise



Podobne dokumenty
Program szkoleniowy Efektywni50+ Moduł III Standardy wymiany danych

Audyt SEO. Elementy oraz proces przygotowania audytu. strona

Linux LAMP, czyli Apache, Php i MySQL

0.1 Hierarchia klas Diagram Krótkie wyjaśnienie

Bazy danych. Andrzej Łachwa, UJ, /15

Kopia zapasowa i odzyskiwanie Podręcznik użytkownika

API transakcyjne BitMarket.pl

Aktualizacja CSP do wersji v7.2. Sierpień 2014

INSTRUKCJA WebPTB 1.0

WZP.DZ.3410/35/1456/2011 Wrocław, 26 maja 2011 r.

Instalacja. Zawartość. Wyszukiwarka. Instalacja Konfiguracja Uruchomienie i praca z raportem Metody wyszukiwania...

Surowiec Zużycie surowca Zapas A B C D S 1 0,5 0,4 0,4 0, S 2 0,4 0,2 0 0, Ceny x

Technologie internetowe Internet technologies Forma studiów: Stacjonarne Poziom kwalifikacji: I stopnia. Liczba godzin/tydzień: 2W, 2L

Informatyka, I stopień. Programowanie (PRO300.1)

TAJEMNICA BANKOWA I OCHRONA DANYCH OSOBOWYCH W PRAKTYCE BANKOWEJ

Poniżej instrukcja użytkowania platformy

Szkolenie Szybki Start

WYKŁAD 1 SYSTEMY CMS CZĘŚĆ 1

Tytuł pracy. Praca dyplomowa inżynierska. Filip Piechocki. Tytuł Imię i Nazwisko

W dobie postępującej digitalizacji zasobów oraz zwiększającej się liczby dostawców i wydawców

Elementy animacji sterowanie manipulatorem

Microsoft Management Console

Spring MVC Andrzej Klusiewicz 1/18

Numer obszaru: 4 Technologie informacyjno-komunikacyjne w realizacji podstawy programowej

PL/SQL. Zaawansowane tematy PL/SQL

Warszawska Giełda Towarowa S.A.

Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych ul. Koszykowa 75, Warszawa

Numer obszaru: 13. Jak pracować z uczniem uzdolnionym informatycznie? Od grafiki i multimediów do poważnych algorytmów w środowisku Logomocja-Imagine

Programowanie w internecie nazwa przedmiotu SYLABUS A. Informacje ogólne

PROBIT Wysoka Kultura w Księgowości

Podręcznik ćwiczeniowy dla pacjenta

Rozwijanie kompetencji nauczycieli i uczniów z zakresu stosowania TIK. Wykorzystanie e-podręczników i e-zasobów w nauczaniu i w uczeniu się

JADWIGA SKIMINA PUBLIKACJA NA TEMAT: NAUKA MS. WORD 2000 W KLASIE IV

Generowanie kodów NC w środowisku Autodesk Inventor 2014

Aplikacje internetowe oparte na kluczowych technologiach Java Enterprise(Servlet,JSP,JDBC, )

Materiały szkoleniowe dla partnerów. Prezentacja: FIBARO a system grzewczy.

Jak usprawnić procesy controllingowe w Firmie? Jak nadać im szerszy kontekst? Nowe zastosowania naszych rozwiązań na przykładach.

2) RODZAJ ZAMAWIAJĄCEGO:

Miejski System Zarządzania - Katowicka Infrastruktura Informacji Przestrzennej

Excel w logistyce - czyli jak skrócić czas przygotowywania danych i podnieść efektywność analiz logistycznych

OGŁOSZENIE O ZAMÓWIENIU - usługi

Instrukcja Obsługi STRONA PODMIOTOWA BIP

Konfiguracja historii plików

Projektowanie bazy danych

enova Workflow Obieg faktury kosztowej

Gdańsk, dnia 13 listopada 2014 r. Poz UCHWAŁA NR L/327/14 RADY POWIATU TCZEWSKIEGO. z dnia 28 października 2014 r. Tczewskiego.

Zamawiający potwierdza, że zapis ten należy rozumieć jako przeprowadzenie audytu z usług Inżyniera.

Karta informacyjna dla przedsięwzięcia. Przygotowanie informacji dla realizacji przedsięwzięcia w aspekcie środowiskowym

Podstawa prawna: Ustawa z dnia 15 lutego 1992 r. o podatku dochodowym od osób prawnych (t. j. Dz. U. z 2000r. Nr 54, poz. 654 ze zm.

Chmura obliczeniowa. do przechowywania plików online. Anna Walkowiak CEN Koszalin

Uniwersytet Rzeszowski

Strategia rozwoju kariery zawodowej - Twój scenariusz (program nagrania).

Ogólna charakterystyka kontraktów terminowych

DE-WZP JJ.3 Warszawa,

Uchwała Nr XXV/30/2013 Rady Gminy Jedlińsk z dnia 30 września 2013 roku

Spis treści 1. Wstęp 2. Projektowanie systemów informatycznych

Skuteczność i regeneracja 48h albo zwrot pieniędzy

Polityka prywatności strony internetowej wcrims.pl

Systemy mikroprocesorowe - projekt

Harmonogramowanie projektów Zarządzanie czasem

WYMAGANIA EDUKACYJNE I KRYTERIA OCENIANIA Z PRZEDMIOTU PROGRAMOWANIE APLIKACJI INTERNETOWYCH

II. WNIOSKI I UZASADNIENIA: 1. Proponujemy wprowadzić w Rekomendacji nr 6 także rozwiązania dotyczące sytuacji, w których:


PROCEDURA OCENY RYZYKA ZAWODOWEGO. w Urzędzie Gminy Mściwojów

MySource Matrix CMS - PROSTY INTERFEJS UŻYTKOWNIKA. INSTRUKCJA ver 1.2

PowerShell. Sławomir Wawrzyniak

Zaproszenie do projektu. Warszawa Lokalnie

Regulamin Projektów Ogólnopolskich i Komitetów Stowarzyszenia ESN Polska

REGULAMIN ZESPOŁU INTERDYSCYPLINARNEGO W KROTOSZYNIE

Ostatnia cena sprzeda y klienta 1.0 dodatek do Symfonia Faktura dla 1 firmy

Priorytetami konkursu są:

Praca za granicą. Emerytura polska czy zagraniczna?

UWAGA!!! I EDYCJA KONKURSU LITERACKO-PLASTYCZNEGO MISTRZ PIÓRA I PĘDZLA DLA UCZNIÓW SZKÓŁ PODSTAWOWYCH I GIMNAZJÓW Z POWIATU LEGIONOWSKIEGO

Wdrożenie modułu płatności eservice dla systemu Virtuemart 2.0.x

Przygotowały: Magdalena Golińska Ewa Karaś

Przedmiot: Projektowanie dokumentów WWW. Laboratorium 3: Strona domowa cz. III Formularze. Opracował: Maciej Chyliński

WSTĘP. Delphi. DDGX210(PL) - Edycja 1 du 01/

Usuni cie has a admina dodatek do Symfonia Kadry i P ace dla 1 firmy

PROCEDURA ADMINISTROWANIA ORAZ USUWANIA

Autoklaw STATIM 5000 G4

SKRÓCONA INSTRUKCJA OBSŁUGI ELEKTRONICZNEGO BIURA OBSŁUGI UCZESTNIKA BADANIA BIEGŁOŚCI

Omnec Onec Zbiór tekstów - Część III - List od Wenusjan

Urządzenie do odprowadzania spalin

Automatyczne generowanie transakcji do WB 1.0 dodatek do Finanse i Ksi gowo ERP dla 1 firmy

Krakowska Akademia im. Andrzeja Frycza Modrzewskiego. Karta przedmiotu. obowiązuje studentów, którzy rozpoczęli studia w roku akademickim 2013/2014

Rozliczenia z NFZ. Ogólne założenia. Spis treści

elektroniczna Platforma Usług Administracji Publicznej

Odpowiedzi na pytania zadane do zapytania ofertowego nr EFS/2012/05/01

Gdynia, dnia r. pieczątka Zamawiającego ZAPYTANIE OFERTOWE

Dane dotyczące Wykonawcy :

WSTĘP DO PROGRAMOWANIA

Zarządzanie projektami. wykład 1 dr inż. Agata Klaus-Rosińska

ZARZĄDZENIE NR 65/2015 PREZYDENTA MIASTA RACIBÓRZ. z dnia 4 lutego 2015 r.

Adres strony internetowej, na której Zamawiający udostępnia Specyfikację Istotnych Warunków Zamówienia:

Instrukcja użytkowania DRIVER. Programator z przewodem sterowniczym. DRIVER 610 lub lub 2 strefy DRIVER

Numer obszaru: 8 E-learning w szkole - wykorzystanie platform edukacyjnych w pracy szkoły

Stowarzyszenie Lokalna Grupa Działania EUROGALICJA Regulamin Rady

Elementy typografii. Technologia Informacyjna Lekcja 22

Transkrypt:

Python in the Enterprise Wykład 1 Bardzo krótki wstęp do Pythona Adam Dendek WFiIS, AGH

Wstępne uwagi Dekoratory Klasy Wyjątki Socket Zawartość Kilka użytecznych modułów Użyteczne narzędzia

Prośba do Państwa Jest bardzo prawdopodobne, że dla Szanownych Państwa materiał przedstawiany na wykładzie może być znajomy Jest duża szanasa, że pposiadają Państwo większą wiedzę na wybrane (lub wszystkie) zagadnienia W takich wypadkach proszę o wyrozumiałość. Proszę również o aktywny udział w wykładzie.

Polecany kurs wstępny Jeżeli nie mają Państwo żadnego doświadczenia w programowaniu w Pythonie sugeruje się zapoznać z wykładmi dr Bołda. Kurs traktuje pythona jako język skryptowy http://tbold.web.cern.ch/tbold/scripts/

Funkcje (czyli zaczynamy baaardzo delikatnie ) Są fundamentalnymi jednostkami kodu. Spójrzmy na banalny przykład Wynik:

*args and **kwargs *args oraz **kwargs pozwala na przekazanie do funkcji dowolnej ilości argumentów Kwargs słownik parametrów nazwanych

Domknięcia (ang. Closures) Ponieważ w Pythonie wszystko jest obiektem można zwracać również funkcje! (dla programistów JS oczywiste) Należy traktować jako generator kodu Ok! Ale po co nam to?!

Problem (wydumany) debugowanie Załóżmy że chcemy się dowiedzieć czy nasza funkcja w ogóle została wykonana oraz zbadać parametry OKROPNE!!!! Nie lubimy powtarzać kodu

Dekorator Dekorator jest funkcją która tworzy wraperem otaczający inną funkcję Dekorator działa tak samo jak bazowa funkcja jednakże pozwala na przeprowadzenie dodatkowych procesów Brak powtórek kodu. Wygląda znacznie zgrabniej, prawda?

Składnia Pythona dla dekoratorów Gdzie spotkamy dekoratory?! Na labolatoriach! Logowanie Testy jednostkowe ( na razie nie będę zdradzać szczegółów)

Konkurs W języku python każdy obiekt przekazywany jest przez referencję Co zostanie wyświetlone na ekranie?

Wyjaśnienie* Immutable(po polsku nie dający się zmieniać): numbers: int, float, complex immutable sequences: string, tuples, bytes, frozensets Mutable: wszystko inne mutable sequences: list, byte array set type: sets mapping type: dict classes, class instances Etc. Jak stworzyć dającego się modyfikować string albo int? *za stackoverflow http://stackoverflow.com/questions/8056130/immutable-vs-mutable-types-python

Krótkie spojrzenie na Klasy @staticmethod function is nothing more than a function defined inside a class. It is callable without instantiating the class first. It s definition is immutable via inheritance. @classmethod function also callable without instantiating the class, but its definition follows Sub class, not Parent class, via inheritance. That s because the first argument for @classmethod function must always be cls. * *Materiał z stackoverflow http://stackoverflow.com/questions/136097/what-is-the-difference-between-staticmeth classmethod-in-python

Dziedziczenie Python wspiera OOP w związku z tym dostępne jest dziedziczenie klas ID: 1 width 100 height 10

Problem diamentu Python zezwala na wielokrotne dziedziczenie Pytanie jaki będzie wynik: I am parent B2

Podobnie jak funkcję można udekorować klasę Jednakże nie zadziała dla całej hierarchii klas Dekorujemy tylko klasę bazową! Rozwiązania wraz z przykładową implementacją proszę przesyłać mailowo na adres adendek@fis.agh.edu.pl do 1.11.15 Do wygrania cenne nagrody!

Wyjątki Labolatiorium Python jest językiem programowania wysokiego poziomu. Wszystkie problemowe sytuacje obsługujemy przez wyjątki. Wbudowane typy wyjątków: https://pymotw.com/2/exceptions/ Key Error 'Zenek' Zawsze się wykonam Zachęcam do zabawy parameterami aby uzyskać różne typy wyjątków

Własne klasy wyjątków Można definiować własne typy wyjątków Używa się dziedziczenia Tego typu zakończenie programu jest nie do przyjęcia!

Echo serwer W trakcie tego wykładu pokażę tylko jak przy użyciu języka python napisać prosty program działający w trybie klient-serwer Będziecie Państwo pisać tego typu aplikacje na labolatoriach!

Echo Client

Kilka użytecznych modułów

OptionParser Moduł służący do pobierania danych z linii komend Bardzo użyteczny przy tworzeniu skryptów

XML parser Przykładowy plik items.xml ( wynik generowany przez przeglądarkę Firefox ) Wszystkie konfiguracje w Państwa projektach mają być zapisane w postaci plików XML!

Logger Proszę o zapoznanie się z modułem logger https://docs.python.org/2/howto/logging-cookbook.h Będzie musiał być używany w państwa projektach!

PIP W większości przypadków nie trzeba odkrywać koła od nowa Można a nawet trzeba wykorzystać istniejące pakiety W celu zarządzania zewnętrznymi pakietami warto użyć systemu zarządzania pakietami Instrukcja instalacji http://pip.readthedocs.org/en/stable/installing/ Przykładowe użycie pip install SomePackage Użycie z Requiements file pip install -r requirements.txt Każdy projekt musi zawierać taki plik! User Guide: http://pip.readthedocs.org/en/stable/user_guide/

Virtualenv Realna sytuacja: Pracujemy nad dwoma projektami jednocześnie Pierwszy z nich wymaga modułu Foo w wersji 1.0 Drugi Foo w wersji 2.1 W tym miejscu przychodzi z pomocą Virtualenv Tworzy on nowe środowisko które nie współdzieli bibliotek jak również zmiennych środowiskowych Zachęcam do używania tego programu podczas tworzenia projektów Link do dokumnetacji https://virtualenv.pypa.io/en/latest/index.html

IDE & styl pisania kodu Podczas pracy nad projektami sugerowane jest używanie Pycharm'a. https://www.jetbrains.com/pycharm/ Proszę o zapoznanie się z PEP8 https://www.python.org/dev/peps/pep-0008/

Literatura którą polecam Python Cookbook, Third Edition Begining Python from Novice to Professional https://www.youtube.com/watch?v=spiwg5jsozi Konferencja PyCon https://www.youtube.com/channel/ucgxzjk6guohvkr_08tt4hjq Stack overflow :) Więcej podam podczas labolatoriów

W następnym odcinku Wzorce projektowe vs Wiedzmin 3 Serdecznie zapraszam!

Podobnie jak funkcję można udekorować klasę Jednakże nie zadziała dla całej hierarchii klas Dekorujemy tylko klasę bazową! Rozwiązania wraz z przykładową implementacją proszę przesyłać mailowo na adres adendek@fis.agh.edu.pl do 1.11.15 Do wygrania cenne nagrody!