320 likes | 603 Views
Programowanie w językach skryptowych. Wykład 1:. Wprowadzenie do język ów skryptowych. Opracował: Dr inż.. Marcin Janaszewski Katedra Informatyki Stosowanej Politechnika Łódzka. Typy języków skryptowych. Języki kontroli zadań i powłoki (ang. job control languages and shells)
E N D
Programowanie w językach skryptowych Wykład 1: Wprowadzenie do języków skryptowych Opracował: Dr inż.. Marcin Janaszewski Katedra Informatyki Stosowanej Politechnika Łódzka
Typy języków skryptowych • Języki kontroli zadań i powłoki (ang. job control languages and shells) Najstarsze języki skryptowe: Unix shelll, MS-DOS COMMAND.COM • Języki specyficzne dla aplikacji Tworzone dla jednej aplikacji. Emacs Lisp, VisualBasic for application • Języki przetwarzania tekstu Narzędzia Unixa: AWK, sed, grep, pierwsze wersje Perl • Dynamiczne języki ogólnego przeznaczenia dynamiczne typy, zarządzanie pamięcią, używane do budowy dowolnych programów • Języki GUI Operują na graficznych elementach systemu operacyjnego, symulują działanie użytkownika.
Język skryptowy Język skryptowy – język programowania • służący do kontrolowania danej aplikacji lub • służący do pisania kodu, który jest analizowany przez interpretator Skrypty – programy napisane w językach skryptowych, których kod źródłowy, lub kod pośredni są analizowane przez interpretator lub program główny i uruchamiane. Programy nieskryptowe są najpierw kompilowane to kodu maszynowego i później wykonywane niezależnie od innych aplikacji. Wczesne języki skryptowe były zwykle zwane językami plików wsadowych (ang. batch languages) tworzono w celu skrócenia tradycyjnego procesu edytowanie-kompilacja-linkowanie-wykonanie.
Przykłady języków skryptowych Python; ASP;AutoIt; AviSynth; Awk; bash;Brain; C-Script; CobolScript; Dylan; E; Euphoria; Guile; Game Maker Language; ICI; JavaScript; JCL; Lua; MUMPS; ObjectRexx; Perl; PHP; Pike; Pliant; AngelCode; QuakeC; REBOL; Rexx; Ruby; Groovy; sh; Simkin; Tcl; UnrealScript; VBScript; Visual DialogScript; Miva.
Czym jest Python Python to popularny (gdyż prosty, o dużych możliwościach, darmowy i powszechnie dostępny) język skryptowy, opracowany we wczesnych latach 90. przez Guido van Rossuma Język nie wymusza jednego stylu programowania, pozwalając na stosowanie różnych. W Pythonie możliwe jest programowanie obiektowe, programowanie strukturalne i programowanie funkcyjne. Typy sprawdzane są dynamicznie, a do zarządzania pamięcią stosuje się garbage collection. Zastosowanie Pythona NASA – aplikacje do zarządzania kontrolą startową wahadłowców. Projekt Nebula to rozproszone środowisko obliczeniowe przystosowane do wykonywania obliczeń w "chmurze" łączące wiele modułów i aplikacji Pythonowych.
Darmowość i swobodny dostęp Powszechnie dostępny: www.python.org Oprogramowanie o otwartych źródłach Licencja Pythona zezwala na kopiowanie, modyfikację, rozszerzanie, rozpowszechnianie, wbudowywanie i odsprzedaż bez konieczności wnoszenia opłat lub podpisywania umów licencyjnych. Ograniczenia: Należy umieścić informacje o prawach autorskich.
Pewność działania i dobre wspomaganie Powstał 20 lat temu stąd obecnie jest to dojrzały produkt, którego kod źródłowy był tworzony, modyfikowany, testowany i poprawiany przez wiele osób. Python jest rozpowszechniany wraz z kompletem dokumentacji, samouczek, opis języka oraz opis bibliotek
Przenośność Python został napisany w ANSI C. Można go skompilować i uruchamiać na każdej popularnej współczesnej platformie systemowej. Rdzeń języka oraz biblioteki działają w ten sam sposób na wszystkich platformach, stąd programy można tworzyć w mieszanych środowiskach. Ograniczenia: niektóre rozszerzenia Pythona są zależne od systemu operacyjnego. Nie można zatem wywoływać modułu COM z Windows w systemie Linux.
Zgodność z innymi językami Python pozwala się łatwo „sklejać” z istniejącymi bibliotekami napisanymi w C, C++, Fortran, Java lub Visual Basic (za pomocą pakietu COM) O integracji Pythona z C można przeczytać w podręcznikach „ Python/C API refence Manual” i „Extending and embeding the Python Interpreter” dołączonych do dystrybucji Pythona
Przejrzystość kodu Kod Pythona można łato odczytać dzięki następującym cechom: • Struktura wierszowa wymuszająca jednolite stosowanie wcięć do wydzielania bloków kodu. Jest to cecha unikatowa wśród powszechnie stosowanych języków programowania • Składnia i semantyka ułatwiająca stosowanie go zarówno w prostych skryptach jak i w dużych programach • Elastyczne struktury danych i dynamiczne typy umożliwiające zaprogramowanie wielu czynności w kilku wierszach.
Obiektowość • Klasy • Obiekty • Dziedziczenie • Przeciążanie • Wyjątki • Refleksja
Gdzie działa Python YouTube - popularny serwis z klipami wideo jest w większości napisany w Pythonie. Twórcy serwisu podkreślali wydajność jaką oferuje Python, a także szybkie implementowanie nowych funkcjonalności poprzez czytelny kod, który łatwo rozszerzać i aktualizować. Google używa Pythona w wielu swoich aplikacjach i usługach takich jak Google App Engine, czy Google Wave. Zatrudnia nawet twórcę tego języka - Guido van Rossuma. Aplikacje napisane w Pythonie działają pod wieloma systemami takimi jak Windows, Linux/Unix, Mac OS X, OS/2, Amiga, czy smarphony Palma i Nokia. Dostępne są także implementacje Pythona w Javie (Jython) i .NET (IronPython) działające wszędzie tam, gdzie dostępne są te platformy.
Typy projektów Tworzenie dynamicznych stron internetowych Frameworki Django, Pylons, serwer aplikacji Zope/Plone. Efektywne i szybkie tworzeniu nowoczesnych stron internetowych bogatych w funkcjonalności. Język ma wiele zalet w porównaniu do PHP Platforma Google App Engine dla rozproszonego hostingu aplikacji internetowych. Oparta została o Pythona i oferuje serwisom www taką samą skalowalność, jaką posiadają wszystkie aplikacje i usługi tej firmy. GAE jest darmowe. Usługi i serwisy społecznościowe to obecnie podstawa dla wielu serwisów www. Za pomocą Pythona można wykorzystać API/usługi serwisów takich jak Twitter, Blip.pl, Facebook, aplikacji Google (Maps, Docs i innych przez GData), czy Google Wave. Przykładowo biblioteka PyFacebook pozwala tworzyć aplikacje dla tego serwisu , a API Google Wave umożliwia tworzenie aplikacji dla tej platformy, czy integrowanie własnych stron i aplikacji z Wave
Typy projektów Programowanie sieciowe - różne usługi, biblioteki, aplikacje, serwery i klienty wykorzystujące sieci. Moduły: socket, select, HTTPServer, SimpleHTTPRequestHandler Aplikacje desktopowe (MS Windows, OS X, Linux) można pisać w Pythonie za pomocą bibliotek takich jak PyQt4, PyGTK, wxPython, czy wbudowanej biblioteki tk. Za pomocą aplikacji py2exe można stworzyć gotowe aplikacje (exe) dla systemów MS Windows, a za pomocą py2app gotowe aplikacje dla OS X.
Typy projektów Zastosowania naukowe, finansowe, przetwarzanie danych. Generowanie wykresów, zestawień, plików PDF, arkuszy Excela, czy ODT/ODS. Reportlab generuje pliki PDF i formatuje raporty Matplotlib - generowanie wykresów. Scipy oferuje implementacje różnych algorytmów do metod numerycznych. PIL – biblioteka przetwarzania i analizy obrazów xlwt i xlrt zapis i odczyt arkuszy Excela. Gry i aplikacje wykorzystujące 3D też można stworzyć z wykorzystaniem Pythona. Bazy danych możliwość zarządzania bazami danych różnych typów. Instalacje http://www.python.org/getit/ Python 2.7.1 i Python 3.2. Wersje 32 bitowe i 64 bitowe na Windows oraz na inne systemy: Linux, MacOS
Dystrybucja Pythona • interpreter, • standardowe moduły, • pliki pomocnicze wymagane do uruchomienia programów. Python działa na większości systemów operacyjnych w tym: Windows, Linux, MacOS
Dokumentacja Pythona Python Tutorial – wprowadzenie do programowania w Pythonie napisane przez Guido van Rossuma zawiera dużo przykładów. Python library Reference – opisuje standardową bibliotekę Pythona dołączoną do pakietu dystrybucyjnego, a także wbudowane typy danych, funkcje i metody. Python language Refence – zawiera dokładny opis składni i znaczenia elementów języka.
Python 2 i Python 3 Python 3 = Python 3000 lub Py3K Wyrażenieprintzastąpiono przez funkcję print() Metodydict.keys(), dict.items() i dict.values() zwracają widoki zamiast list map() i filter() zwracają iteratory Użycie typów text i binarnego zamiast stringówunikodowych i 8-bitowych Niezgodność wielu przydatnych bibliotek
Zmienne środowiskowe Pythona • PYTHONPATH - ma podobne zadanie jak PATH. Ta zmienna informuje interpreter Pythona o położeniu plików modułowych, które są importowane do programu. Zmienna PYTHONPATH powinna zawierać katalog z biblioteką źródłową Pythona oraz katalogi zawierające kody źródłowe programów użytkownika. Czasami wartość PYTHONPATH jest ustawiana wstępnie przez lnstalator Pythona • PYTHONSTARTUP - zawiera ścieżkę do pliku inicjującego, który zawiera kod źródłowy Pythona, który jest wykonywany podczas każdego uruchomienia interpretera (podobnie do uniksowego profile lub pliku .login). Plik, który w Uniksie często nazywa się .pythonrc.py, zwykle zawiera polecenia ładujące programy pomocnicze lub modyfikujące wartość PYTHONPATH • PYTHONCASEOK - zmienna stosowana w Windows wtedy, gdy Python w instrukcji importma wyszukiwać pierwszy moduł o nazwie pasującej niezależnie od wielkości liter. Aby ją uaktywnić, należy nadać jej dowolną wartość • PYTHOMHOHE - alternatywna ścieżka wyszukiwania modułów. Przeważnie są one umieszczane w katalogach PYTHONSTARTUPlub PYTHONPATH, co ułatwia przełączanie się między bibliotekami modułowymi
Uruchamianie programów w trybie interakcyjnym Tryb interakcyjny – najłatwiejszy sposób uruchamiania programów w języku Phyton. • Uruchom interpreter w trybie interakcyjnym. • Po pojawieniu się znaku zachęty >>> wpisz instrukcję Pythona. • Naciśnij klawisz Enter. • Interpreter wyświetla wynik działania instrukcji, a następnie znak zachęty >>> . Interpreter wyświetli ponownie znak zachęty >>> także wtedy, gdy instrukcja nie zwróci żadnych wyników.
Praca w trybie interakcyjnym Interpreter wyświetla znak zachęty dla instrukcji wielowierszowych (lub złożonych). Aby poinformować Pythona, że zakończono wpisywanie instrukcji, należy wstawić pusty wiersz
Sygnalizacja błędów syntaktycznych i wyjątków w command line
Uruchamianie programu jako skryptu Pliki z kodem źródłowym w języku Python mają rozszerzenie .py i są nazywane modułami Uruchamianie programu jako skryptu • Włącz tryb systemowego wiersza poleceń oraz upewnij się, czy katalog z Pythonem jest wpisany do ścieżki oraz czy skrypt znajduje się w bieżącym katalogu. • Wpisz polecenie python script. py i naciśnij klawisz Enter (script.py jest nazwą pliku zawierającego skrypt). W systemie Unix można przekształcić skrypt Pythona w wykonywalny program dodając początkowy wiersz ze znakami #! i nadając plikowi atrybuty wykonywalności. Początkowy wiersz ma następujące właściwości: • rozpoczyna się od znaków #!; • zawiera ścieżkę do interpretera języka Python; • jest umieszczony zawsze na początku pliku.
Zastosowanie IDLE Zintegrowane środowisko programowania) jest aplikacją, która opakowuje interpreter Pythona w interfejs graficzny (GUI) i dołącza wiele funkcji do podstawowego interpretera wiersza poleceń. Charakteryzuje się ona obecnością menu, automatycznym dodawaniem wcięć, wskazówkami na temat składni, debuggerem oraz narzędziami do edycji plików. IDLE jest dostępna w wersjach przeznaczonych dla systemów Windows i Unix (dla systemu MacOS istnieje podobne narzędzie o nazwie Python IDE). Pełna dokumentacja IDLE jest dostępna pod adresem: www.python.org/idle/docZidle2.html Aplikacja IDLE jest dołączana do dystrybucji Pythona.
Komentarze • Rozpoczynamy znakiem # • Komentarzem jest teks rozciągający się od # do końca wiersza • Komentarz może zajmować cały wiersz • Komentarz może być umieszczony na końcu wiersza • W komentarzach stosowane są wcięcia o tej samej głębokości co opisywany przez nie kod (nieobowiązkowe) • Python nie obsługuje wielowierszowych komentarzy. Każdy komentarz musi mieć własny znak #.
Nadawanie nazw zmiennym • Nazwy nie maja ograniczenia długości • Nazwy rozpoczynają się od litery lub znaku podkreślenia, za którymi może występować dowolna liczba liter, cyfr lub podkreśleń. Przykłady: x, _render, The_Bronx. Nazwy niepoprawne: 100domow, %hash, nowa? • W nazwach wielkość liter jest istotna • Nazwy nie mogą być słowami kluczowymi Pythona Słowa kluczowe: and, assert, break, class, continue, def, del, elif, else, except, exec, finally, for, from, global, if, import, in, is, lambda, not, or, pass, print, raise, return, try, while. Wyświetlanie listy słów kluczowych Pythona: import keyword print keyword.kwlist
Wskazówki dotyczące nadawania nazw Nazwy stosowane w Pythonie zwykle składają się z małych liter a poszczególne słowa tworzące nazwę są oddzielane znakami podkreślenia: liczba_cyfr Należy unikać rozpoczynania nazw zmiennych od znaku podkreślenia, gdyż w ten sposób często zmienne definiowane są przez system.
Wyrażenie Jest dozwoloną kombinacją symboli (zmiennych, literałów, obiektów, funkcji, nawiasów, operatorów itd.), która zwraca obiekt po przetworzeniu w interpreterze Pythona. W wyrażeniu mogą być użyte funkcje i operatory wbudowane lub zdefiniowane samodzielnie przez użytkownika. Wyrażenia są klasyfikowane na podstawie typu zwracanego przez nie obiektu lub działania, które wykonują.
Typy wyrażeń Arytmetyczne – daje w wyniku liczbę Atom – literał, identyfikator, wyświetlanie lub przekształcanie łańcucha: 3.14, x, [1, 2], ‘x’ Odwołanie do atrybutu – atrybut obiektu: obj.attr Logiczne – Działanie logiczne, które w wyniku daje prawdę lub fałsz: a and b, not x. Wywołanie – wywołuje funkcje lub metodę: len(x), a.append(a) Porównanie – Operacja porównania, która daje w wyniku 1 (prawdę) lub 0 (fałsz): a!=0, x<y<z, m is n, s not in t Wyświetlanie – Krotka, lista lub słownik: (1,2), (3,), [1,2], {„a”:1, „b”:2} Lambda – Forma lambda: lambda x: x*x Wycinanie – Zakres pozycji w sekwencji: x[2:4], x[-3:], x[:5] Subskrypcja – pozycja w sekwencji albo słownik: x[0], x[-1], dict[key] Przekształcenie łańcucha – łańcuchowa reprezentacja obiektu: str(x), repr(x), ‘x’