Uruchamianie skryptów Pythona
Przez skrypt rozumiemy plik tekstowy o rozszerzeniu .py. By go wykonać wydajemy polecenie:python nazwa_pliku.py
lub po prostu
./nazwa_pliku.py
jeżeli plik zawiera odwołanie do interpretera - w pierwszej linijce plik zawiera:
#!/usr/bin/env python
Jeżeli wykonujemy skrypty pythona bezpośrednio (Linux/Unix) to pliki te muszą mieć atrybut wykonywalności (chmod 755 nazwa_pliku.py)Witaj świecie
Zapisz podany kod jako skrypt1.py i uruchom go jedną z opisanych wcześniej metod: Powinieneś zobaczyć trzy wiersze z tekstem ze skryptu. Pierwszy skrypt prezentuje napisy (łańcuchy). W Pythonie napisy zamykane są poprzez pojedynczy lub podwójny cudzysłów, z tym że pojedynczy może być od jednego do trzech a podwójnego jeden lub trzy. Jeżeli tekst ograniczymy z obu stron potrójnymi cudzysłowami (dowolnego typu) to tekst może zajmować kilka wierszy. W pozostałych przypadkach musi być zawarty w jednym wierszu. Zastosowane polecenie print służy w Pythonie do wyświetlania tekstu (w konsoli)Oto kolejny skrypt: Gdy go wykonamy zobaczymy w pierwszym wierszu "W" a w drugim "Witaj". W skrypcie tym przypisaliśmy napis "Witaj w swiecie Pythona" do zmiennej "a" a następnie skorzystaliśmy z operatora indeksowania by wyświetlić określony fragment napisu. Operator indeksowania ma postać: nazwa_zmiennej[od:do] gdzie od:do oznacza numery porządkowe w napisie (od którego wyświetlać / do którego wyświetlać). Jeżeli podamy tylko jedną liczbę to zostanie wyświetlony znak z pozycji o podanym numerze.
Do łączenia napisów służy znak "+": Co wyświetli "Witaj w swiecie Pythona w 2007 roku" Do łączenia napisów ze zmiennymi innych typów służą dwie funkcje: str zamienia typ zmiennej na typ napisowy, co umożliwia dołączenie np. liczby do napisu.
Liczby
Operacje matematyczne są proste i intuicyjne. Oto przykład: Znak % oznacza dzielenie modulo - zwróci resztę z dzielenia. Wynik będzie następujący:7 10 0 2
a = 2.0 b = 5.0
7.0 10.0 0.4 2.0
Wynik dzielenia wynosi: 0.400000 co bylo oczekiwane
%s, %d i %f to odpowiednio - napis, liczba całkowita i liczba zmiennoprzecinkowa. Znaki te wstawione w napis zostaną zamienione wartościami zmiennych podanych na końcu wiersza ( % (zmienna, zmienna, itd) )Instrukcje Warunkowe
Do wykonywania testów "jeżeli" służy składnia: Po wykonaniu skryptu zobaczymy "1" i "C i B rowne" Struktura składni ma postać:if warunek: instrukcje else: instrukcje
== - jest równe
!= - nie jest równe
< > - mniejsze, większe niż
Należy pamiętać że a = b to przypisanie, natomiast a == b to porównanie. Pominięcie jednego znaku równości jest częstym błędem.!= - nie jest równe
< > - mniejsze, większe niż
Polskie znaki w skryptach Pythona
Domyślnie interpreter przyjmuje kodowanie ASCII dla plików *py. Jeżeli stosujemy polskie znaki to musimy podać odpowiednie kodowanie. Zaleca się stosowanie kodowania utf-8 i zapisywania plików z tym kodowaniem. Po zapisaniu pliku z tym kodowaniem należy dodać na początku pliku:# -*- coding: utf-8 -*-
Listy i tuple
Listy i tuple są sekwencjami/zbiorami różnych obiektów. W innych językach nazywane tablicami. Oto przykład: Na początku tworzymy listę imiona. By wyświetlić wpis z danej pozycji korzystamy z opisanego wcześniej operatora indeksowania. Polecenie imiona[1] = "rychu2" zmienia wartość drugiego (numeracja elementów rozpoczyna się od zera) elementu listy. Funkcja len zwraca ilość elementów listy. Oprócz tego listy i tuple mają sporo innych opcji, o których powiemy później. Mogą one zawierać również np. liczby czy inne listy/tuple. Za pomocą operatora "+" można łączyć kilka list/tupli w jedną.Tuple różnią się tym od list że nie można zmieniać wartości elementów tupli po jej utworzeniu. Tuplę tworzymy tak:
tupla = (1, 3, "jurek")
Metody Listy
- list(s) - konwertuje sekwencję s na listę
- s.append(x) - dodaje nowy element x na końcu s
- s.extend(t) - dodaje nową listę t na końcu s
- s.count(x) - zlicza wystąpienie x w s
- s.index(x) - zwraca najmniejszy indeks i, gdzie s[i] == x
- s.pop([i]) - zwraca i-ty element i usuwa go z listy. Jeżli nie podamy parametru to usunięty zostanie ostatni element
- s.remove(x) - odnajduje x i usuwa go z listy s
- s.reverse() - odwraca w miejscu kolejność elementów s
- s.sort([funkcja]) - Sortuje w miejscu elementy. "funkcja" to funkcja porównawcza
Metody Napisowe
- s.capitalize() - zmienia pierwszą literę na dużą
- s.center(długość) - Centruje napis w polu o podanej długości
- s.count(sub) - zlicza wystąpienie podciągu sub w napisie s
- s.encode(kodowanie) - zwraca zakodowaną wersję napisu ('utf-8', 'ascii', 'utf-16')
- s.isalnum() - sprawdza czy wszystkie znaki są znakami alfanumerycznymi
- s.isdigit() - sprawdza czy wszystkie znaki są cyframi
- s.islower() - sprawdza czy wszystkie litery są małe
- s.isspace() - sprawdza czy wszystkie znaki są białymi znakami
- s.isupper() - sprawdza czy wszystkie litery są duże
- s.join(t) - łączy wszystkie napisy na liście t używając s jako separatora
- s.lstrip() - usuwa początkowe białe znaki
- s.replace(old, new) - zastępuje stary podciąg nowym
- s.rstrip() - usuwa końcowe białe znaki
- s.split(separator) - dzieli napis używają podanego separatora
- s.strip() - usuwa początkowe i końcowe białe znaki
Pętle
W Pythonie mamy też kilka rodzajów pętli. Pierwsza z nich to while: Po wykonaniu kodu zobaczymy sześć "Jestem w while.". Pętla ta ma postać ogólną:while WARUNEK: ZDARZENIA_DLA_PĘTLI
Słowniki
Słownik to w innych językach takich jak PHP tablica asocjacyjna (haszująca) zawierająca obiekty poindeksowane za pomocą kluczy.
nazwa = { "klucz" : "wartość", "klucz" : "wartość" }
Próba odwołania się do nieistniejącego klucza spowoduje błąd wykonywania skryptu. Jeżeli może zdarzyć się sytuacja że klucz może nie istnieć to warto skorzystać z metody słownika has_key: lub Pierwszy parametr metody get to nazwa klucza a drugi (opcjonalny, domyślnie - None) to reakcja w przypadku braku klucza.
By uzyskać listę kluczy wystarczy użyć metody keys(). Do usuwania elementów słownika służy instrukcja del.
Funkcje
Funkcję definiujemy za pomocą instrukcji def. Oto przykład:def nazwa_funkcji(parametr, parametr, parametr): #kod funkcji return zmienna # lub return (tupla, tupla, bla, bla, bla)
Klasy
Instrukcja class pozwala definiować klasy - używane w programowaniu obiektowym. Klasy to w uproszczeniu zbiory funkcji powiązanych między sobą, co pozwala na tworzenie w łatwy i niezależny sposób wielu komponentów złożonej aplikacji przez wielu programistów. Metody klasy definiowane są za pomocą def. Pierwszy argument każdej metody odnosi się do obiektu i zazwyczaj stosuje się nazwę "self". Wszystkie operacje wykorzystujące atrybuty obiektu muszą odwoływać się do nich poprzez tą zmienną. Metody poprzedzone __ to metody specjalne, np __init__ jest wykonywana przy utworzeniu obiektu klasy (wywołaniu klasy - s = koszyk())Moduły
W przypadku dużych projektów całego skryptu w jednym pliku raczej nie "zmieścimy". Istnieje potrzeba zastosowania szeregu plików z definicjami np. różnych funkcji. Utwórz plik doda.py: W drugim pliku wpisz: Gdzie "import doda" to import NAZWA_PLIKU (bez rozszerzenia .py). Wszystkie obiekty zawarte w tym module dostępne są poprzez jego nazwę - NAZWA_PLIKU.dodaj(a,b).Można też załadować określony element - from doda import dodaj lub też załadować wszystko do bieżącej przestrzeni nazw from doda import *
