Python - Podstawy:
Instalacja Pythona:
W celu uruchamiania plików Pythona (rozszerzenie .py) należy najpierw zainstalować odpowiedni interpreter.Można go pobrać ze strony python.org
Typy danych:
Python automatycznie wykrywa i przypisuje typ danych zmiennej, nie musimy (choć możemy) używać specjalnego polecenia, aby określić typ danych.podstawowe typy danych w Pythonie:
- string - tekst np. "abcd"
- integer - liczba całkowita np. 2
- float - liczba niecałkowita np. 2.5
- list - lista np. ["adam", 5, "marek", 13]
- tuple - niezmienna lista np. ("adam", 5, "marek", 13)
- bool - prawda lub fałsz np. True
type()
przykład zastosowania:x = 5.5
print(type(x))
powyższy kod zwróci typ float. Możliwa jest konwersja danych jednego typu na inny.
W tym celu należy użyć odpowiedniej funkcji np.
str(5)
lub float("2.5")
Zmienne:
W odróżnieniu od większości języków programowania Python nie ma komendy służącej do deklarowania zmiennych.Zmienną tworzymy według tego schematu:
nazwa_zmiennej = wartość_zmiennej
na przykład: x = 5
Zasady nazywania zmiennych:
- Nazwa zmiennej może zawierać tylko znaki alfanumeryczne i znaki podkreślenia (A-z, 0-9 i _)
- Nazwa zmiennej musi zaczynać się od litery lub znaku podkreślenia (nie może zaczynać się od cyfry)
- W nazwach zmiennych rozróżniana jest wielkość liter (owca, Owca i OWCA to trzy różne zmienne)
x = 5
Teraz jest to zmienna typu integer. x = "Kuba"
A teraz typu string. Print:
polecenieprint()
służy do wyświetlania danych w konsoli. Przykład zastosowania:
print("Witam")
Import
polecenieimport
służy do importowania modułów i innych plików do naszego projektu. Używając
import pygame
importujemy bibliotekę pygame dostępną online, jest wiele podobnych bibliotek które ułatwiają życie i znacznie poszerzają możliwości Pythona.
Tym samym sposobem możemy importować zmienne, funkcje, klasy itd. z innych naszych plików.
Załóżmy, że w tym samym folderze co nasz program znajduje się inny plik o nazwie "UserMethods"
Aby zaimportować wszystkie obiekty z tego pliku używamy
import UserMethods
pisanie rozszerzenia pliku nie jest potrzebne Jednak jeśli jesteśmy zainteresowani jedynie niektórymi obiektami z tego pliku, załóżmy że zmienną o nazwie "FirstNames" użyjemy poniższego kodu:
from UserMethods import FirstNames
najpierw podajemy plik z którego importujemy a potem co importujemy. Tak samo możemy postąpić z zewnętrznymi bibliotekami np.
from pygame import display
Warto wspomnieć o możliwości użycia innej nazwy biblioteki niż oryginalna.
Polecenie
import pygame as pg
zaimportuje bibliotekę pygame jako "pg" Dzięki czemu aby użyć metody display zamiast
pygame.display
wystarczy napisać pg.display
Sprawdzanie błędów
Błędy są nieuniknione, zwłaszcza przy wszystkim co obsługuje inny użytkownik.Aby odpowiednio reagować na błędy, na przykład poprzez wyświetlenie odpowiedniego komunikatu błędu,
należy użyć poleceń
try
i except
. Taki program wykona kod zawarty w bloku
try
, a w razie wystąpienia błędu wykona kod zawarty w bloku except
. Możemy użyk osobnych bloków
except
dla różnych typów błędów, w tym celu po poleceniu
except
piszemy nazwę błędu przy którym ma zostać wykonany ten blok. Jeżeli po poleceniu
except
nie będzie nazwy błędu, blok kodu wykona się przy każdym błędzie. Przykład zastosowania:
try:
print(a)
except NameError:
print("zmienna a nie istnieje")
except:
print("nieznany błąd")
Warunki:
if:
Warunek jeśli stosujemy przy pomocy poleceniaif
na przykład: if 2 > 1:
print("2 jest większe od 1")
należy pamiętać od wcięciach w kodzie, ten przykład nie zadziała: if 2 > 1:
print("2 jest większe od 1")
W tym przykładzie print wykona się niezależnie od warunku if, wiele języków programowania używa nawiasów klamrowych, jednak python używa wcięć. else:
Polecenieelse
oznacza "wykonaj, jeśli poprzedni warunek nie jest prawdziwy" Przykład zastosowania:
if x > y:
print("x jest większe od y")
else:
print("x nie jest większe od y")
elif:
Polecenieelif
oznacza "wykonaj, jeśli poprzedni warunek nie jest prawdziwy, a ten jest:" Przykład zastosowania:
if x > y:
print("x jest większe od y")
elif x == y
print("x jest równe y")
elif x < y:
print("x jest mniejsze od y")
and i or
Poleceniaand
i or
oznaczają "i" i "lub" and
oznacza że obydwa warunki muszą być prawdziwe, a or
że przynajmniej jeden warunek musi być prawdziwy. krótkie if:
Jeżeli poif
chcesz wykonać tylko jedno polecenie możesz umieścić je w tej samej lini co if
Przykład zastosowania:
if x > y: print("x jest większe od y")
Krótkie if z else
Do krótkiegoif
możemy dodać else
przykład zastosowania:
print("x jest większe od y") if x > y else print("x nie jest większe od y")
Polecenie pass
poleceniaif
, pętle for
i funkcje nie mogą być puste, jeżeli nie chcesz aby wykonywało kod, w celu uniknięcia błędu użyj polecenia
pass
przykład zastosowania:
if x > y: pass
polecenia pass
można używać także w funkcjach i pętlach.
Funkcje:
Funkcja jest to blok kodu który jest wykonywany tylko kiedy zostanie wywołany.Funkcje podczas wywoływania przyjmują argumenty których wartości później używają.
Funkcja może zwracać dane po wykonaniu.
Definiowanie funkcji:
Funkcje definiujemy w następujący sposób:def NazwaFunkcji(argument1,argument2):
Wywoływanie funkcji:
Funkcje wywołujemy w następujący sposób:NazwaFunkcji(WartośćArgumentu1,WartośćArgumentu2)
Wywołując funkcje musimy podać wartości dla wszystkich argumentów funkcji.Wartości argumentów są przypisywane do argumentów po kolei, zgodnie z kolejnością ich definiowania.
Czyli pierwsza wartość którą podamy zostanie przypisana do pierwszego argumentu który zdefiniujemy, druga do drugiego itd.
Jeżeli chcemy podać wartości argumentów w innej kolejności musimy ręcznie określić do jakiego argumentu podajemy wartość.
Robimy to w następujący sposób:
NazwaFunkcji(argument2 = WartośćArgumentu2, argument1 = WartośćArgumentu1)
Domyślna wartość argumentu funkcji:
Przy deklarowaniu funkcji możemy podać domyślną wartość argumentów.W tym jednym wypadku możemy wywołać funkcje bez podawania wartości wszystkich argumentów.
Jeżeli nie podamy wartości argumentu funckja użyje domyślnej wartości.
Tworzenie funkcji z domyślnym argumentem:
def NazwaFunkcji(argument1 = WartośćArgumentu1)
teraz możemy uruchomić funkcje bez podawania wartości argumentu, jeśli jednak ją podamy zostanie ona użyta zamiast domyślnej. Funkcja zwracająca dane:
Funkcja może zwracać dane, w tym celu należy użyć poleceniareturn
Przykład zastosowania:
def NazwaFunkcji(argument1):
return argument1 + 1
należy pamiętać o tym że polecenie return
kończy wykonywanie się funkcji. Więc kod który znajduje się za poleceniem
return
nie zostanie wykonany. Pętle:
Python ma dwa rodzaje pętli, są to pętlewhile
i for
while:
Pętlawhile
wykonuje kod dopóki warunek jest prawdziwy. Na poniższym przykładzie polecenie
print
będzie wykonywanie dopóki wartość zmiennej liczba będzie mniejsza od 5. z każdym wykonaniem pętla będzie zwiększać wartość zmiennej liczba o 1, dzięki temu pętla nie będzie wykonywać się w nieskończoność.
liczba = 1
while liczba < 5:
print(liczba)
liczba += 1
for:
pętlafor
wykonuje się dla każdego elementu obiektu. przykład zastosowania:
ludzie = ["adam","piotr","zuza"]
for x in ludzie:
print(x)
Powyższy kod zwróci każdy element listy ludzie
osobno. x
może mieć dowolną inną nazwę, jest zmienną której wartością jest element dla którego pętla się aktualnie wykonuje. Jeżeli zamiast listy użyjemy napisu (string) pętla wykona się dla każdej litery osobno.
range:
Zamiast listy bądź napisu w pętlifor
możemy podać funkcje range()
Przykład zastosowania:
for x in range(5):
print("dzień dobry")
Powyższa pętla wykona się 5 razy, od 0 do 4.
else:
else można używać zwhile
na tej samej zasadzie co z Polecenie
else
oznacza wykona jeśli warunek jest fałszywy. W przypadku pętli
for
polecenie else
wykona się po zakończeniu pętli. Przykład zastosowania:
liczba = 1
while liczba < 5:
print(liczba)
liczba += 1
else:
print("liczba nie jest mniejsza od 5")
break:
Poleceniebreak
zatrzymuje wykonywanie się pętli. Kod umieszczony po tym poleceniu nie zostanie wykonany.
Obsługa plików:
wczytywanie plików:
Aby wczytać plik znajdujący się w tym samym folderze co program zależy użyć funkcjiopen()
Przykład zastosowania:
plik = open("nazwapliku.txt")
odczyt plików:
Aby odczytać zawartość całego pliku należy użyć metodyread()
Przykład zastosowania: (po wczytaniu pliku jako "plik")
print(plik.read())
Odczytać fragment pliku możemy na 2 sposoby:
Aby odczytać określoną ilość znaków z pliku jako argument metody
read()
należy podać ilość znaków które chcemy odczytać. Aby odczytać pierwszy wiersz należy użyć metody
readline()
Powyższe polecenie odczyta jeden wiersz pliku,
jeżeli chcemy odczytać więcej wierszy należy je wykonać tyle razy ile wierszy chcemy odczytać (można do tego użyć pętli for)
zapis do pliku:
Aby otworzyć istniejący plik z możliwością zapisu dodajemy drugi parametr to funkcjiopen()
"a"
- append: Daje do końca pliku. "w"
- write: Nadpisuje zawartość pliku. Przykładowo polecenie
open("plik.txt","w")
otworzy plik "plik.txt" i podczas zapisu nadpisze jego zawartość. Jeżeli plik nie istnieje zostanie on automatycznie utworzony.
Aby zapisać dane do pliku używamy metody
write()
jako argument metody podajemy to co chcemy zapisać. zamknięcie pliku:
Kiedy skończymy operacje na pliku należy go zamknąć.Do tego celu służy metoda
close()
, metoda ta nie przyjmuje argumentów. Przykładowy program:
Oto przykładowy program w Pythonie który otworzy istniejący plik "dane.txt",doda wszystkie występujące w nim liczby (1 na linie), nawet liczby niecałkowite (typ float).
Po czym zapisze wynik dodawania do pliku "wynik.txt" (jeżeli plik nie istnieje to zostanie on utworzony)
try:
dane = open("dane.txt")
wynik = open("wynik.txt","w")
obliczenia = 0.0
for x in dane:
obliczenia += float(x)
wynik.write(str(obliczenia))
dane.close()
wynik.close()
except ValueError:
wynik = open("wynik.txt","w")
wynik.write("Wystąpił błąd! Jedna z wartości z pliku dane.txt nie jest liczbą.")
except FileNotFoundError:
wynik = open("wynik.txt","w")
wynik.write("Wystąpił błąd! Plik dane.txt nie istnieje. Sprawdź czy znajduje się on w tej samej lokalizacji co program.")
except:
wynik = open("wynik.txt","w")
wynik.write("Wystąpił nieznany błąd.")
Dwa najprawdopodobniejsze scenariusze błędu to: 1: Plik dane.txt nie istnieje
2: Dane wprowadzone do pliku dane.txt przez użytkownika nie są liczbą.
Powyższe błędy są bardzo prawdopodobne przy nieprawidłowym użyciu,
więc aby ułatwić użytkownikowi znalezienie błędu program nasłuchuje tych błędów i wyświetla odpowiednie komunikaty.
Jeżeli użytkownik okaże się szczególnie kreatywny w tworzeniu błędów i zdoła wywołać nieprzewidziany błąd, program wyświetli bardziej ogólny komunikat.