Podstawy bioinformatyki 2017/18

Podobne dokumenty
Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p.

Python wstęp. Michał Bereta

JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.

Python jest interpreterem poleceń. Mamy dwie możliwości wydawania owych poleceń:

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p.

Podstawy bioinformatyki 2017/18

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 12. Karol Tarnowski A-1 p.

Język skryptowy: Laboratorium 1. Wprowadzenie do języka Python

JAVAScript w dokumentach HTML (1)

Programowanie w języku Python. Grażyna Koba

Naukę zaczynamy od poznania interpretera. Interpreter uruchamiamy z konsoli poleceniem

Wstęp do informatyki. Python 1

Wprowadzania liczb. Aby uniknąć wprowadzania ułamka jako daty, należy poprzedzać ułamki cyfrą 0 (zero); np.: wpisać 0 1/2

Podstawy JavaScript ćwiczenia

Informatyka- wykład. Podstawy programowania w Pythonie. dr Marcin Ziółkowski

Język Python. Język Python 1/35

Trochę o plikach wsadowych (Windows)

Typy danych, cd. Łańcuchy znaków

Metody numeryczne Laboratorium 2

utworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy,

Informatyka, Ćwiczenie Uruchomienie Microsoft Visual C++ Politechnika Rzeszowska, Wojciech Szydełko. I. ZałoŜenie nowego projektu

1 Przygotował: mgr inż. Maciej Lasota

INFORMATYKA Studia Niestacjonarne Elektrotechnika

Przykłady zastosowań funkcji tekstowych w arkuszu kalkulacyjnym

Język programowania zbiór reguł określających, które ciągi symboli tworzą program komputerowy oraz jakie obliczenia opisuje ten program.

Podstawy bioinformatyki 2017/18

Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w

Podstawy i języki programowania

Cw.12 JAVAScript w dokumentach HTML

1. Pierwszy program. Kompilator ignoruje komentarze; zadaniem komentarza jest bowiem wyjaśnienie programu człowiekowi.

Podstawy bioinformatyki 2017/18

Język Python (2) Język Python (2) 1/36

Języki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście.

Słowem wstępu. Część rodziny języków XSL. Standard: W3C XSLT razem XPath 1.0 XSLT Trwają prace nad XSLT 3.0

Autor: dr inż. Katarzyna Rudnik

AKADEMIA MORSKA W SZCZECINIE WI-ET / IIT / ZTT. Instrukcja do zajęc laboratoryjnych nr 1 AUTOMATYZACJA I ROBOTYZACJA PROCESÓW PRODUKCYJNYCH

2 Przygotował: mgr inż. Maciej Lasota

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Podstawy programowania. Python wykład 6

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Podstawy programowania w Pythonie

Algorytmy i struktury danych

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Ćwiczenie nr 6. Poprawne deklaracje takich zmiennych tekstowych mogą wyglądać tak:

Rys.2.1. Trzy warstwy stanowiące podstawę popularnego podejścia w zakresie budowy stron internetowych [2]

1 Powtórzenie wiadomości

Podstawy bioinformatyki 2017/18

Administracja sieciowymi systemami operacyjnymi III Klasa - Linux

Struktury, unie, formatowanie, wskaźniki

TEMAT : System operacyjny MS DOS pliki wsadowe

Zasady programowania Dokumentacja

Wstęp do programowania

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach?

Systemy operacyjne. Laboratorium 9. Perl wyrażenia regularne. Jarosław Rudy Politechnika Wrocławska 28 lutego 2017

Warsztaty dla nauczycieli

Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać

Myśl w języku Python! : nauka programowania / Allen B. Downey. Gliwice, cop Spis treści

Język Python: operacje i obliczenia na danych typów prostych. Wyprowadzanie wyników.

Podstawy programowania. Wykład 6 Złożone typy danych: struktury, unie. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania skrót z wykładów:

Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Lab 9 Podstawy Programowania

Formatowanie zawartości komórek

Języki i metody programowania

Oczywiście plik musi mieć rozszerzenie *.php

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

JAVAScript w dokumentach HTML - przypomnienie

Kier. MTR Programowanie w MATLABie Laboratorium

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

2. Zmienne i stałe. Przykłady Napisz program, który wypisze na ekran wynik dzielenia 281 i 117 w postaci liczby mieszanej (tj. 2 47/117).

Kurs rozszerzony języka Python

Aplikacje w środowisku Java

Umieszczanie kodu. kod skryptu

Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS cz.3

System operacyjny Linux

Bazy danych. Polecenia SQL

Jak napisać program obliczający pola powierzchni różnych figur płaskich?

Część XVII C++ Funkcje. Funkcja bezargumentowa Najprostszym przypadkiem funkcji jest jej wersja bezargumentowa. Spójrzmy na przykład.

Wstęp do programowania

Java EE produkcja oprogramowania

I. Podstawy języka C powtórka

Zawartość. Wstęp. Moduł Rozbiórki. Wstęp Instalacja Konfiguracja Uruchomienie i praca z raportem... 6

3 Delegacje. 3.1 Tworzenie delegacji. 3.2 Skojarzenie delegacji z procedurą czy funkcją

Programowanie obiektowe

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

Napisy w PHP. Drukowanie napisów instrukcją echo

Technologie Informacyjne - Linux 3

Podstawy programowania w Pythonie

Projektowanie aplikacji internetowych Pisanie skryptów wiersza poleceń - pętle

Podstawy Programowania

Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje

Viatoll Calc v1.3. Viatoll Calc. Instrukcja użytkownika. Strona 1

Transkrypt:

JEZYK PROGRAMOWANIA PYTHON: WPROWADZANIE DANYCH I FORMATOWANIE WYNIKÓW, WEWNETRZNA DOKUMENTACJA, PROGRAMY I MODUŁY E. Dyguda-Kazimierowicz 1 Formatowanie danych wyjściowych Do formatowania wyświetlanych wyników służy dwuargumetowy operator % (kolejny przykład przeciążania operatorów). Jego działanie polega na przekształceniu (formatowaniu) łańcucha podanego po lewej stronie z wykorzystaniem zastępczych wartości wymienionych po prawej. Wynikowy napis można wyświetlić (np. za pomocą instrukcji print) lub przypisać zmiennej: >>> imie, ilosc_kotow = "Ala", 7 >>> print "%s ma %d kotow" % (imie, ilosc_kotow) >>> tekst = "%d: tyle kotow ma %s" % (ilosc_kotow, imie) >>> print tekst 7: tyle kotow ma Ala Formatowany łańcuch (lewy operand), oprócz zwykłego tekstu wyświetlanego w niezmienionej postaci, zawiera tzw. ciagi (pola) formatujace, których liczba musi odpowiadać liczbie pozycji zgrupowanych w nawiasach jako prawy operand. Ciąg formatujący (np. %s) rozpoczyna się znakiem %, po nim opcjonalnie wstawia się modyfikatory sterujące sposobem wyświetlania danych, na końcu podana jest litera określająca typ przekształcenia w powyższym przykładzie napis imie wstawiany jest do łańcucha w miejsce "%s", a liczba całkowita ilosc_kotow zastępuje ciąg %d. Analogicznie wstawia się do łańcucha liczby zmiennoprzecinkowe (%f, %g, %e lub %E polecam samodzielne sprawdzenie różnic między wynikowymi formatami), liczby całkowite ósemkowe (%o) i szesnastkowe (%x albo %X), pojedyncze znaki (%c), a także literał % (%%). Liczba wstawiona między znak % i literę definiującą przekształcenie oznacza szerokość pola, dodatkowo poprzedzenie jej kropką pozwala określić dokładność (następuje zaokrąglenie wyniku zmien- 1

1 FORMATOWANIE DANYCH WYJŚCIOWYCH noprzecinkowego do żądanej liczbę miejsc znaczących, domyślnie 6). Wynik przekształcenia wyrównywany jest do prawej aby to zmienić, wystarczy wstawic znak "-" po znaku "%". W tym samym miejscu może się też pojawić "+" (poprzedzanie liczb, również dodatnich, ich znakiem), "0" (poprzedzanie liczb zerami aż do wypełnienia zadanej szerokości pola) oraz spacja (wstawianie znaku spacji przed liczbami dodatnimi i pustymi łańcuchami): >>> x, y = 123456, 123.456 >>> s = "python" >>> print "[%10d]\n[%10f]\n[%10s]" % (x, y, s) [ 123456] [123.456000] [ python] >>> print "[%.2d]\n[%.2f]\n[%.2s]" % (x, y, s) [123456] [123.46] [py] >>> print "[%10.2d]\n[%10.2f]\n[%10.2s]" % (x, y, s) [ 123456] [ 123.46] [ py] >>> print "[%-10.2d]\n[%-10.2f]\n[%-10.2s]" % (x, y, s) [123456 ] [123.46 ] [py ] >>> print "[%-+10.2d]\n[%010.2f]\n[%.2f]" % (x, y, y) [+123456 ] [0000123.46] [ 123.46] >>> print "[%7c]\n[%7o]\n[%7d]\n[%7x]" % (70, 70, 70, 70) [ F] [ 106] [ 70] [ 46] 2

3 ATRYBUTY OBIEKTÓW: WEWNETRZNA DOKUMENTACJA 2 Wprowadzanie danych Komunikację użytkownika z programem, czyli pobieranie danych ze standardowego wejścia, umożliwiają funkcje raw_input() i input(). Pierwsza z nich zwraca łańcuch, natomiast druga interpretuje typ wprowadzanego obiektu zgodnie z regułami Pythona (patrz poniższe przykłady). Opcjonalnym argumentem dla obu funkcji jest łańcuch wyświetlany podczas oczekiwania na podanie danych: >>> a, b = raw_input( Liczba: ), raw_input( Napis: ) Podaj liczbe: 100 Podaj napis: sto >>> type(a), type(b) (<type str >, <type str >) >>> A, B = input( Liczba: ), input( Napis: ) Podaj liczbe: 100 Podaj napis: sto >>> type(a), type(b) (<type int >, <type str >) Funkcja input() wymaga od użytkownika znajomości składni Pythona: wpisanie w powyższym przykładzie napisu sto bez apostrofów wyświetli komunikat o błędzie. Bezpieczniej jest zatem korzystać w programach z funkcji raw_input(), należy jednak pamiętać o konwersji wprowadzonych danych do określonego typu. Funkcja input() jest w rzeczywistości równoważna działaniu funkcji eval() na łańcuch zwrócony przez raw_input() działanie tej funkcji polega na interpretowaniu i obliczaniu wyrażeń, w których skład wchodzić mogą zmienne, funkcje i struktury danych: >>> X, Y, S = 3.14, -1, jakis tam napis >>> policz = input() #rownowazne: eval(raw_input()) X*Y - 10 + len(s) >>> print policz 1.86 3 Atrybuty obiektów: wewnętrzna dokumentacja Wbudowana funkcja dir() zwraca listę atrybutów obiektu podanego jako argument. Atrybuty to nazwy związane z obiektem (np. nazwy jego zmiennych, funkcji, klas). Poniżej funkcję dir() wywołano z obiektem typu łańcuchowego (pustym napisem): 3

4 IMPORTOWANIE MODUŁÓW, MODUŁ MATH >>> dir( ) [ add, class, contains, delattr, doc, #...tu usunieto fragment capitalize, center, count, decode, encode, endswith, #...itd... Analogicznie uzyskać można atrybuty np. metody łańcuchowej capitalize: >>> dir(.capitalize) [ call, class, cmp, delattr, doc, getattribute, hash, init, module, name, new, reduce, reduce_ex, repr, self, setattr, str ] Wyrażenie obiekt.atrybut (tzw. kwalifikacja nazw) umożliwia dostęp do określonego atrybutu danego obiektu (np..capitalize. doc z poniższego przykładu pobiera wartość przypisaną do doc w metodzie capitalize obiektu łańcuchowego). Warto zwrócić uwagę na dwa atrybuty występujące w prawie każdym obiekcie: łańcuch dokumentacji doc oraz łańcuch będący po prostu nazwą obiektu, czyli name : >>> print.capitalize. doc S.capitalize() -> string Return a copy of the string S with only its first character capitalized. W ubiegłym tygodniu pokazano przykład użycia funkcji dir() do wyświetlenia nazw zmiennych zdefiniowanych podczas interakcyjnej pracy interpretera (w globalnej przestrzeni nazw). Listę nazw z wbudowanej przestrzeni nazw (tzn. wszystkie nazwy wstępnie zdefiniowane przez Pythona) zwraca dir( builtins ). W ten sposób można np. sprawdzić dostępne funkcje wbudowane, a następnie przejrzeć ich dokumentację. 4 Importowanie modułów, moduł math Za pomocą funkcji wbudowanych w Pythonie można zrobić stosunkowo niewiele. Wbudowane funkcje matematyczne pozwalają obliczyć wartość bezwzględną liczby, porownać dwie liczby czy znaleźć minimalną (maksymalną) wartość w sekwencji liczb (odpowiednio abs(x), cmp(x1,x2), 4

5 WŁASNE MODUŁY (PROGRAMY) min(x1,x2,x3), max(x1,x2,x3s)), ale już obliczenie dowolnej funkcji trygonometrycznej jest niemożliwe. Zaletą takiej strategii jest oszczędność w gospodarowaniu zasobami pamięci: funkcje używane tylko w niektórych przypadkach nie są niepotrzebnie ładowane do pamięci. Z Pythonem rozprowadzany jest natomiast cały szereg bibliotek (modułów), udostępniających mnóstwo funkcji wykorzystywanych w rozmaitych typach zadań programistycznych. Wspomniane funkcje trygonometryczne znajdują się w module math. Aby z nich skorzystać, należy ten moduł zaimportować (załadować do pamięci interpretera) za pomocą instrukcji import, a podczas wywoływania danej funkcji pokazać Pythonowi jej lokalizację, stosując opisaną powyżej kwalifikację nazw: >>> import math >>> print math.pi #liczba pi (stala zmiennoprzecinkowa) 3.14159265359 >>> print math.sin(math.pi/6) #argument: kat w radianach 0.5 >>> x=1 >>> print math.log(x) #logarytm naturalny 0.0 >>> print math.exp(x) #funkcja eksponencjalna 2.71828182846 Zamiast importować moduł w sposób przedstawiony powyżej, można pobrać tylko potrzebne w danym momencie obiekty unika się tym samym konieczności kwalifikowania nazw (tzn. nazwy obiektów używane są bezpośrednio): >>> from math import pi, sin >>> print sin(pi/2) 1.0 W analogiczny sposób działa wyrażenie "from math import *" zamiast ładowania określonych nazw, pobierane są wszystkie nazwy obiektów z modułu math. 5 Własne moduły (programy) Programy w języku Python określane są często jako skrypty lub moduły (pliki modułowe). Z technicznego punktu widzenia są to zwykłe pliki tekstowe z kodem źrodłowym w tym języku, uruchamiane poleceniem python nazwa_programu wpisywanym z poziomu powłoki w Linuksie lub w wierszu poleceń DOS (wymaga to oczywiście zainstalowanego interpretera Pythona): 5

5 WŁASNE MODUŁY (PROGRAMY) prkom1:~$ cat moj_program.py x, y, imie = 2, 5, Ala print "%s ma %d kotow" % (imie, x + y) prkom1:~$ python moj_program.py W systemach Unix/Linuxplik z kodem w Pythonie można zamienić na plik wykonywalny i uruchamiać potem jak każdy plik wykonywalny w tych systemach, Należy w tym celu w pierwszej linii wpisać po znakach #! ścieżkę dostępu do interpretera Pythona (można ją uzyskać poleceniem which python) oraz nadać plikowi atrybut wykonywalności: prkom1:~$ cat moj_program.py #!/usr/bin/python x, y, imie = 2, 5, Ala print "%s ma %d kotow" % (imie, x + y)$ prkom1:~$ chmod +x moj_program.py prkom1:~$./moj_program.py Pierwszy wiersz w powyższym pliku stanowi informację dla powłoki o tym, co zrobić z zawartością pliku (dla interpretera języka Python jest to zwykły komentarz); podaną tu ścieżkę należy traktować jako przykład. Aby uniknąć jawnego wpisywania ścieżki dostępu, można skorzystać z programu env, który wyszukuje w dostępnych ścieżkach program podany jako argument. W praktyce sprowadza się to do zastąpienia ścieżki do interpretera lokalizacją programu env oraz argumentem dla tego programu (czyli nazwą interpretera python): #!/usr/bin/env python Programy w Pythonie można wreszcie zaimportować do interpretera pracującego w trybie interaktywnym lub wstawić instrukcję importu do dowolnego innego kodu źrodłowego Pythona. W obu przypadkach wymagana jest nazwa pliku zgodna z regułami tworzenia nazw zmiennych w Pythonie, zakończona rozszerzeniem ".py". Pierwszy import modułu powoduje uruchomienie całego zawartego w nim kodu, od tego moment uzyskuje się też dostęp do nazw zdefiniowanych w module: >>> import moj_program >>> print moj_program.x, \n, moj_program.imie 2 Ala 6