Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
Małgorzata NiewiemAGH, GGiOŚ, Katedra Geoinformatyki i Informatyki Stosowanej
SATIM Satelitarny Monitoring
Python dla początkujących
Stworzony w latach 90 przez Guido van Rossum
Nazwa pochodzi od serialu komediowego „Latający cyrk Monthy Pythona”
Wstęp
• Język skryptowy
• Język interpretowano - kompilowany
• W pełni obiektowy
• Rozprowadzany jest na otwartej licencji
• Umożliwia programowanie na różnych systemach operacyjnych
• Możliwe jest napisanie fragmentów kodu w C, C++
• Automatyczne zarządzanie pamięcią
• Dynamiczne typowanie – nie ma deklarowania zmiennych ani typów
Wstęp
• Tworzenie dynamicznych stron internetowych
• Usługi i serwisy społecznościowe
• Aplikacje desktopowe
• W zastosowaniach naukowych, czy finansowych
• Gry i aplikacje wykorzystujące 3D
Do czego można użyć Pythona ?
Jak zacząć ?
skąd wziąd Pythona?
czyli ...
•Jest już zainstalowany razem z ArcGISem
•Jest już zainstalowany razem z QGISem
•Można zainstalowad samemu
•Można skorzystad z internetowych interpreterów
Wersja on-line
• http://www.tutorialspoint.com/execute_python_online.php
• http://www.skulpt.org/
• https://repl.it/
http://www.tutorialspoint.com/execute_python_online.phphttp://www.tutorialspoint.com/execute_python_online.phphttp://www.tutorialspoint.com/execute_python_online.phphttp://www.skulpt.org/http://www.skulpt.org/http://www.skulpt.org/https://repl.it/https://repl.it/https://repl.it/
Wersja on-line
Samodzielna instalacja
Mamy go!
Ale co teraz ?
Jak go uruchomid ?
Konsola
IDE
IDE – Integrated Development Environment – zintegrowane środowisko programistyczne
Anaconda
Pakiet zawierający Pythona z ponad 150 bibliotekami. Zawiera również darmowe IDE – Spyder.
Okno edytoraKonsola
Inspektor obiektów
Spyder
Pierwszy program
Linia zaczynająca się znakiem #to komentarz.
Jest on ignorowany przez komputer
Jak to działa?
plik.py plik.pyc PVM
Kod źródłowy
BajtkodWirtualna maszyna
„GisDay” „2017” „UR” „Kraków”
nazwa rok organizator miejsce
Referencje
Obiekty
Zmienne
W sensie technicznym zmienna jest wskaźnikiem na adres w pamięci gdzie jest przechowywany obiekt.
Zmienne
nazwa = ”GisDay”
nazwa = 100
„GisDay” 100
nazwa
Referencje
Obiekty
Zmienne
Typ jest związany z obiektem, a nie ze zmienną.
Zmienne – co się stanie z GisDay?
„GisDay”
nazwa
Referencje
Obiekty
Zmienne
Nie tworzymy nowego obiektu tylko nową referencję
projekt
Zmienne – referencje współdzielone
nazwa = ”GisDay”
projekt = ”GisDay”
Nie powinny zaczynad się od liczb
Powinny zawierad tylko litery, liczby i podkreślenie (_)
Nie powinny zawierad słów kluczowych
Python rozróżnia małe i duże litery
mojaZmienna != MojaZmienna
Zmienne – nazwy
1234
35L
1.234
int
long
float
bool
str
lista
słownik(dict)
krotka(tuple)True False
‘’GisDay 2017”
lista = ,‘GisDay’, ‘2017’, ‘Kraków’, ‘UR’-
slownik =,‘Wydarzenie’ : ‘GisDay’, ‘Miejsce’ : ‘Kraków’ -
krotka = (2017, ‘GisDay’, 10, ‘Kraków’)
Typy zmiennych
Podstawowe operacje:
+ - * / % **
Operatory porównania:
= < > !=
Typy liczbowe
1234 35L1.234int longfloat
Dlaczego operacja zwraca zero ?
Typy liczbowe przykład 1
Co oznacza znak % ?
Typy liczbowe przykład 2
Która operacja zwróci 0 a która 0.4 ? Dlaczego ?
Typy liczbowe przykład 3
Importowanie dodatkowej biblioteki
‘’ G i s D a y 2 0 1 7 ”
0 1 2 7 10
Łaocuchy = napisy = ciągi znaków
Łaocuchy przykład 1
Co zwróci operacja ?
Łaocuchy przykład 2
Co zwróci a*11+ ? Dlaczego ?
Który to indeks ?
Łaocuchy przykład 3
Wynik jest listą
Co oznacza zwrócona liczba ?
mojaLista = *‘GisDay’, ‘Kraków’, ‘2017’+
Typy złożone - listy
mojaLista
[0]
Typy złożone - listy
GisDay
mojaLista
[0]
[1]
Typy złożone - listy
GisDay
Kraków
mojaLista
[0]
[1]
[2]
Typy złożone - listy
GisDay
Kraków
2017
mojaLista
Listy – przykład 1
Ile elementów zwróci operacja ?
Gdzie dodany zostanie element ?
if warunek:blok instrukcji
elif warunek:blok instrukcji
else:blok instrukcji
W instrukcji warunkowej występuje:dokładnie jedna fraza if,dowolnie wiele fraz elif,
co najwyżej jedna fraza else.
Instrukcje warunkowe
== jest równe!= nie jest równe< > mniejsze, większe niż
Wcięcia poprzedzają instrukcję.Struktura blokowa jest elementem składni Pythona
Instrukcje warunkowe przykład 1
Co jest odpowiedzialne za kodowanie polskich znaków
Pobieranie wartości od użytkownika
Zwrócona wartośd jest typu string
Instrukcje iteracji
for wartość in lista:blok instrukcji
Powtarzamy czynnośd tyle razy, ile elementów ma ten zbiór czy też ciąg
Instrukcje iteracji przykład 1
range () - zwraca listę składającą się z kolejnych liczb całkowitych
przedział
Instrukcje iteracji przykład 2
Jakie wartości będą w liście po skooczeniu pętli ?
Praca na plikach
• Python posiada wbudowana funkcję open służącą do otwierania plików z dysku.
• Open zwraca obiekt pliku, dzięki któremu możemy się dostad do pliku i wykonywad na nim operacje.
• Zawartośd pliku traktujemy jako łaocuchy znaków.
Plik = open(”Nazwa_pliku”, ”tryb”)
Nazwa pliku jest wymagana
r – odczytw – zapisa – dodawanie danychr+ - czytanie i pisanie
Opcjonalny argument, w przypadku jego braku plik zostanie otwarty w trybie ”r”
Praca na plikach –zapis i odczyt
Jeśli nie znajdzie pliku o tej nazwie tworzy nowy
Tryb do odczytu jest domyślny
Praca na plikach –zapis i odczyt
Funkcje
def witaj(kto):print 'Witaj %s na warsztatach Pythona!' %(kto)
witaj("Jan")
Funkcja to częśd programu wielokrotnego użytku. Pozwala uruchamiad blok dowolną ilośd razy, używając zadeklarowanej do niego nazwy.
Ciało funkcji
Słowo kluczoweNazwa funkcji
Parametry funkcji
Wywołanie funkcji
Funkcje –argumenty wejściowe
Funkcja może:• przyjmowad argumenty wejściowe• zwracad wartości
Napisz program, który wczyta od użytkownika pewien napis, a następnie wyświetli 20 kopii tego napisu, każda w
osobnej linii.
Zadanie 1
Napisz program, który obliczy pole trójkąta, pod warunkiem że użytkownik poda wysokośd i długośd podstawy tego
trójkąta.
Uwzględnij, że wysokośd i długośd podstawy mogą byd liczbami
niecałkowitymi.
Zadanie 2
Napisz program, który wczyta od użytkownika liczbę całkowitą i wyświetli informację, czy jest
to liczba parzysta, czy nieparzysta.
Zadanie 3
Napisz program, który wczyta od użytkownika napis a następnie wypiszę
znaki tego napisu w kolejności odwrotnej.
Zadanie 4
Napisz program, który wypisuje liczby od 1 do 100.
• Dla wielokrotności trójki wyświetl "Fizz" zamiast liczby.
• Dla wielokrotności piątki wyświetl "Buzz.
• Dla liczb będących wielokrotnościami trójki oraz piątki wyświetl "FizzBuzz"
Zadanie 5
Napisz funkcję, która pyta użytkownika o dwie liczby i wypisuje czy są one
równe a jeśli nie to wypisuje różnicę między nimi.
Zadanie 6
Zadanie 7
Napisz program, który pyta o wiek i w zależności od podanej wartości, wypisuje czy ktoś jest
pełnoletni czy nie. Dodatkowo program powinien wypisywad:• dla osoby pełnoletniej od ilu lat jest
pełnoletnia• dla osoby niepełnoletniej, ile lat brakuje do
pełnoletności
Dziękuje