Python. Skąd taka nazwa? Kurs systemu UNIX 1



Podobne dokumenty
Zaawansowany kurs języka Python

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

Kurs rozszerzony języka Python

Python dla początkujących. Małgorzata Niewiem AGH, GGiOŚ, Katedra Geoinformatyki i Informatyki Stosowanej SATIM Satelitarny Monitoring

Podstawy. Jan Koprowski Politechnika Gdańska, FTiMS Informatyka Stosowana

Programowanie robota mobilnego E-puck w języku Python

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

Wstęp do informatyki. Python 1

Wykresy i interfejsy użytkownika

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

Microsoft IT Academy kurs programowania

Programowanie obiektowe

Wprowadzenie do języka Java

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

Przegląd języka Python. Łukasz Anwajler

Python. Wprowadzenie. Jolanta Bachan

Podstawowe części projektu w Javie

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

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

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

1 Podstawy c++ w pigułce.

Algorytmika i Programowanie VBA 1 - podstawy

Operatory cd. Relacyjne: ==!= < > <= >= bool b; int i =10, j =20; dzielenie całkowitych wynik jest całkowity! Łączenie tekstu: + string s = "Ala ma ";

KOTLIN. Język programowania dla Androida

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Programowanie obiektowe

ECDL Podstawy programowania Sylabus - wersja 1.0

Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje.

Środowisko programisty

Podstawy Programowania ELEMENTY PROGRAMU i TYPY DANYCH

Wstęp do programowania

Cw.12 JAVAScript w dokumentach HTML

Pascal - wprowadzenie

1 Podstawy c++ w pigułce.

Programowanie w języku Python. Grażyna Koba

Podstawy Programowania C++

Programowania w Javie

Podstawy programowania w języku C

Wstęp do programowania

Języki C i C++ Wykład: 2. Wstęp Instrukcje sterujące. dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD

Programowanie, algorytmy i struktury danych

PHP: bloki kodu, tablice, obiekty i formularze

Odczyt danych z klawiatury Operatory w Javie

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

PL/SQL. Część 1 Bloki PL/SQL. Piotr Medoń

Pętla for. Matematyka dla ciekawych świata -19- Scilab. for i=1:10... end. for k=4:-1:1... end. k=3 k=4. k=1. k=2

Nazwa implementacji: Nauka języka Python wyrażenia warunkowe. Autor: Piotr Fiorek. Opis implementacji: Poznanie wyrażeń warunkowych if elif - else.

JAVA?? to proste!! Autor: wojtekb111111

Wprowadzenie do Scilab: podstawy języka Scilab

Java EE produkcja oprogramowania

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

Kurs rozszerzony języka Python

Koło Studentów Informatyki Uniwersytetu Wrocławskiego

Liczby losowe i pętla while w języku Python

Programowanie Obiektowe i C++

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Wstęp do Informatyki i Programowania (kierunek matematyka stosowana)

Warunki logiczne instrukcja if

PROGRAMOWANIE W PYTHONIE OD PIERWSZYCH KROKÓW

Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java

Jak zawsze wyjdziemy od terminologii. While oznacza dopóki, podczas gdy. Pętla while jest

Programista samouk : profesjonalny przewodnik do samodzielnej nauki kodowania / Cory Althoff. Gliwice, copyright Spis treści

Pytania dla języka Python

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak

Środowisko programisty Zestaw 7

MATERIAŁY DO ZAJĘĆ II

Podstawy bioinformatyki 2017/18

Funkcje są prawdopodobnie najważniejszą częścią każdego poważnego programu (w każdym języku programowania).

Pętla for. Wynik działania programu:

Języki i metody programowania

Język ludzki kod maszynowy

Podstawy bioinformatyki 2017/18

Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.)

Technologie Informacyjne Mechatronika 2012/2013 Błędy obliczeń. Python.

Wstęp do programowania

Wprowadzenie. Organizacja pracy i środowisko programistyczne. Mirosław Ochodek

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.

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

Podstawy programowania. Wykład: 4. Instrukcje sterujące, operatory. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Programowanie obiektowe i C++ dla matematyków

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

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

Programowanie komputerowe. Zajęcia 1

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 16 kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 27

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

Redis, skrypty w języku Lua

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

Spis treści. Funkcje. 1 Funkcje 1.1 Zadanie Zadanie Zadanie Zadanie Zadanie Zadanie Zadanie 7

KURSY PROGRAMOWANIA DLA DZIECI

Wykład 2 Składnia języka C# (cz. 1)

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Materiały pomocnicze do wykładu 3 - Elementy języka Java

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

Informatyka I. Wykład 3. Sterowanie wykonaniem programu. Instrukcje warunkowe Instrukcje pętli. Dr inż. Andrzej Czerepicki

Nazwa implementacji: Nauka języka Python pętla for. Autor: Piotr Fiorek

Transkrypt:

Python Skąd taka nazwa? Kurs systemu UNIX 1

Cechy języka marketing Obiektowy (dużo prostszy od C++) Darmowy Nie tylko Unix (choć tam najpopularniejszy) Wiele bibliotek (np. Tkinter, czyli interfejs do Tk) Integracja z C, możliwość kompilacji do bytecode u Javy Wiele naturalnych konstrukcji językowych. Łatwy do nauczenia. Kurs systemu UNIX 2

Cechy języka konkrety Są typy, ale dynamiczne, czyli sprawdzane podczas wykonania programu Wsród typów danych: listy, słowniki, łańcuchy. Słowniki mogą być adresowane różnymi typami. Odśmiecanie (czyli, co to jest a=b) i dlaczego nie trzeba używać wskaźników. Moduły, klasy, wyjątki. Kompilowany do kodu pośredniego (jak Java) Kurs systemu UNIX 3

Kto się przyznaje do Pythona Firma RedHat używa Pythona w narzędziach do instalacji Linuksa Google, Infoseek oraz Yahoo! NASA (w systemie sterowania lotami kosmicznymi) Industrial Light & Magic +wiele innych (www.python.org/community/users.html) Kurs systemu UNIX 4

Uruchamianie programów w Pythonie Programy można uruchamiać interakcyjnie % python >>> print "Witaj pi kny ±wiecie" Witaj pi kny ±wiecie >>> x = 123456789000000000000000L >>> Ctrl^D aby wyj± Można (tradycyjnie) napisać #!/usr/bin/python Kurs systemu UNIX 5

Przekazywanie parametrów Poniższy program wypisuje swoje parametry: import sys print sys.argv Można używać niekwalifikowanych nazw, ale wówczas trzeba zaimportować za pomocą from sys import * # ewentualnie from sys import argv Ponieważ argv to lista, zostanie on wypisany jakoś tak: ['aaa', '-x', '-x'] Moduły wyszukiwane są wg ścieżki zapisanej w zmiennej PYTHONPATH. Kurs systemu UNIX 6

Liczby Całkowite: jak typ long w języku C Długie całkowite (nieograniczony rozmiar), 999999999999L Zmiennoprzecinkowe (jak double w języku C). Są też zespolone (3+4j) Standardowe operatory arytmetyczne: jak w C, jest też potęgowanie (2 ** 10) Standardowe operatory relacyjne (<) Kurs systemu UNIX 7

Operatory logiczne Spójniki logiczne: and, or, not. Wartości logiczne podobnie jak w języku C Kurs systemu UNIX 8

Łańcuchy Literały łańcuchowe ograniczone cudzysłowem bądź apostrofem """ ogranicza napisy wieloliniowe Podstawowe operacje: konkatenacja, powtarzanie, długość napisu: >>> "Ala" + ' i as', 3 * "hop!", len("abrakadabra") ('Ala i as', 'hop!hop!hop!', 11) Kurs systemu UNIX 9

Wycinanie Mamy specjalne konstrukcje składniowe do wycinania podnapisów: >>> s = "abrakadabra" >>> s[0], s[2:5], s[:6], s[6:] ('a', 'rak', 'abraka', 'dabra') Jak napis ma długość N, to myślimy, że są w nim kreski o numerach od 0 do N, definiując wycinek mówimy od jakiej do jakiej kreski wycinamy. Kurs systemu UNIX 10

Inne operacje na napisach Podstawowe operacje na napisach zawarte są w module string. Rozdzielania napisów (jak w AWK): >>> string.split("ala ma kota") ['Ala', 'ma', 'kota'] >>> string.split("123:434:656::", ":") ['123', '434', '656', '', ''] Można połączyć z powrotem: >>> x = ['Ala', 'ma', 'kota',''] >>> string.join(x), string.join(x," -- ") ('Ala ma kota ', 'Ala -- ma -- kota -- ') Kurs systemu UNIX 11

Listy Listy służą do przechowywania elementów różnych typów (również list). Przykład: [1,2,'ala','as',[2,3] ] Wiele operacji podobnych jak na napisach: indeksowanie, wycinanie, długość, konkatenacja Pytanie: x in [1,2,3,4]? Funkcja range: >>> range(3),range(5,10) ([0, 1, 2], [5, 6, 7, 8, 9]) Kurs systemu UNIX 12

Sortowanie list Metoda sort służy do sortowania list: >>> x = [4,3,13,4] >>> x.sort() >>> x [3, 4, 4, 13] Wywołanie: obiekt.metoda(argumenty) Kurs systemu UNIX 13

Zmiany stanu Niektóre obiekty mogą zmieniać swój stan, inne nie: zmienne: listy, słowniki, obiekty użytkownika niezmienne: liczby, napisy, krotki Krotki wyglądają b.podobnie do list, ale używa się nawiasów (1,2,3). Dla krotek wycinanie, itd podobnie, ale nie działa np. sort. Kurs systemu UNIX 14

Zmiany stanu przykłady Po lewej stronie podstawinie może być element listy, albo jej wycinek. Przykład >>> L = [2**x for x in range(10)] >>> L[5:8] = ['Uwaga!','Uwaga!'] >>> L[0] = 'Nieciekawy element' >>> L[len(L):len(L)] = ['Koniec'] Kurs systemu UNIX 15

Wynik: ['Nieciekawy element', 2, 4, 8, 16, 'Uwaga!', 'Uwaga!', 256, 512, 'Koniec'] Kurs systemu UNIX 16

Operowanie na niezmiennych obiektach Niezmiennych obiektów nie można zmienić. Jak chcemy a="ala ma kota" zmienić na "Ala posiada kota" to... >>> # Bª d: a[4:6] = "posiada" >>> a = a[:4] + "posiada" + a[6:] >>> a 'Ala posiada kota' Obiekt się nie zmienił, zmienna a oznacza inny obiekt. Jeżeli na napis "Ala ma kota" ktoś patrzył, to nadal widzi to samo. Kurs systemu UNIX 17

Podstawienie Nazwa jest tworzona, jeżeli jest po lewej stronie podstawienia. Ułatwienia syntaktyczne, podstawienia wielokrotne: ta sama wartosc: a = b = c = 5 inne wartości: a,b = b,a Kurs systemu UNIX 18

Instrukcje złożone: pętla for Składnie pętli jak w bash-u: for x in L: print x # lub inne operacje L.sort() # lub co± innego # -- poza p tl! Informacja o strukturze programu przekazywana za pomocą wcięć. Dwukropek występuje w wielu miejscach składni Pythona. Kurs systemu UNIX 19

Słowniki Do adresowanie słowników można użyć dowolnego niezmiennego typu (to tu przydaje się drugi rodzaj list, czyli krotki) Tworzymy słowniki za pomocą: {'ala':3,'ola':5, 'as':6 } Działa test x in D, gdzie x oznacza klucz, Można również iterować indeksy w słowniku za pomocą for i in D: print "d[%s] = %f" % (i,d[i]) Kurs systemu UNIX 20

Przykładowe funkcje działajace na słownikach keys zwraca listę kluczy, items zwraca listę par (klucz,warto± ) dict konstruuje słownik z par, przykładowo: >>> L = [3,5,7,9] >>> LP = [ (x,3*x) for x in L ] >>> dict(lp) {9: 27, 3: 9, 5: 15, 7: 21} dict(d.items()) oznacza ten sam słownik (utworzony ponownie). Kurs systemu UNIX 21

Bardziej zaawansowane narzędzia dla list i słowników Dla list mamy zaimplementowane kilka standardów programowania funkcjonalnego map(lambda x: x+3, range(6) to [3,4,5,6,7,8] filter(lambda x: x%3 == 0, range(10)) to [0, 3, 6, 9] reduce(lambda x,y: x+y, [1,2,3,3]) to 9 Kurs systemu UNIX 22

Instrukcje Oprócz pętli for mamy takie standardowe instrukcje jak while, if z else (oraz elif), break i continue Jak zaczyna się blok, to robimy wcięcie (i pamiętamy o dwukropkach). Kurs systemu UNIX 23

Przykład while x<100: x = x + 1 if x % 3 == 0: print "!" elif X % 3 == 1: print "*" else: if y > 100: continue if y < 7: break y = jakas_funkcja(x,y) print "Po petli!" Kurs systemu UNIX 24