
Python – język programowania wysokiego poziomu ogólnego przeznaczenia, o rozbudowanym pakiecie bibliotek standardowych, którego ideą przewodnią jest czytelność i klarowność kodu źródłowego. Jego składnia cechuje się przejrzystością i zwięzłością.
Python wspiera różne paradygmaty programowania: obiektowy, imperatywny oraz w mniejszym stopniu funkcyjny. Posiada w pełni dynamiczny system typów i automatyczne zarządzanie pamięcią, będąc w tym podobnym do języków Perl, Ruby, Scheme czy Tcl. Podobnie jak inne języki dynamiczne jest często używany jako język skryptowy. Interpretery Pythona są dostępne na wiele systemów operacyjnych.
WITAJ W PROGRAMIE
def main():
print("Witaj świecie!")
if __name__ == "__main__":
main()
Konstrukcja polegająca na definicji funkcji main(), a także jej wywołaniu w instrukcji warunkowej, będzie się powtarzać we wszystkich programach, które będziemy pisać. Nie martw się, jeśli póki co nie jest to dla Ciebie jasne. Ta typowa konstrukcja korzysta z elementów języka Python, które wprowadzimy dopiero później. Przede wszystkim koncentruj się na wnętrzu funkcji main, w tym wypadku jest to print("Witaj świecie!"). print to funkcja wypisująca podany komunikat (w naszym przypadku “Witaj świecie!”) na tzw. standardowe wyjście.
Teraz, gdy już umiemy wypisać pierwszy komunikat, spróbujemy czegoś lepszego. Pobierzemy napis od użytkownika. W tym celu skorzystamy ze standardowego wejścia:
def main():
print("Witaj świecie!")
pobrany_napis = input()
print("Twój napis to: " + pobrany_napis)
if __name__ == "__main__":
main()
# funkcja główna programu
def main():
print("Witaj świecie!") # ta funkcja wypisuje napis
# wiersz poniżej wczytuje dane z klawiatury
pobrany_napis = input()
print("Twój napis to: " + pobrany_napis)
# uruchomienie funkcji głównej
if __name__ == "__main__":
main()
Zmienne
W naszych programach często będziemy obliczać jakieś wartości lub wczytywać je od użytkownika. Jednak samo obliczenie wartości to nie wszystko. Trzeba jeszcze ją gdzieś zapisać, aby wynik ciężkiej pracy procesora nie poszedł na marne.
a = 7
Powyżej mamy zmienną o nazwie a, która ma wartość 7. Pamiętajmy, że zmienna, jak sama nazwa wskazuje, może zmieniać swoją wartość w czasie trwania programu:
a = 7
print(a)
## 7
a = 8
print(a)
## 8
podatek_VAT = 0.23
Typy danych
| Typ | Opis | Przykład |
|---|---|---|
Python 3: strPython 2: unicode | Napis w Unikodzie (niezmienny) | Python 3: 'Imie' lub "Imie"Python 2: u'Imie'lub u"Imie" |
Python 3: bytesPython 2: str | Napis w ASCII (niezmienny) | Python 3: b'Imie' lub b"Imie"Python 2: 'Imie' lub "Imie" |
list | Lista (zmienna, zawartość, długość) | [4.0, 'string', True] |
tuple | Krotka (niezmienna) | (4.0, 'string', True) |
set | Zbiór różnych elementów (zmienny) | Python 3: {4.0, 'string', True}Python 2: set([4.0, 'string', True]) |
frozenset | Zbiór różnych elementów (niezmienny) | Python 3: frozenset({4.0, 'string', True})Python 2: frozenset([4.0, 'string', True]) |
dict | Słownik, czyli tablica asocjacyjna (zmienny). | {'key1': 1.0, 3: False} |
int (oraz long w Python 2) | Liczba całkowita o dowolnej wartości | 42 |
float | Liczba zmiennoprzecinkowa | 3.1415927 |
complex | Liczba zespolona | 3+2.7j |
bool | Prawda lub fałsz | TrueFalse |
type(None) | Nic (odpowiednik null) | None |
Programowanie funkcyjne
liczby = [1, 2, 3, 4, 5] potegi_dwojki = [2**n for n in liczby]
Biblioteka standardowa
Python posiada rozbudowaną bibliotekę standardową, umożliwiającą jego stosowanie do wielu zadań. Twórcy języka stosują politykę tzw. Batteries Included, czyli dostarczenia wraz z pakietem instalacyjnym możliwie dużej liczby narzędzi. Moduły standardowej biblioteki można uzupełniać modułami pisanymi w C lub w Pythonie. Biblioteka standardowa jest szczególnie dobrze dostosowana do tworzenia aplikacji sieciowych, jako że obsługuje znaczną liczbę standardowych formatów i protokołów (np. MIME, HTTP). Dołączone są także moduły do tworzenia GUI (na bazie Tcl/Tk), obróbki wyrażeń regularnych, nawet prosty serwer WWW z obsługą CGI.
Większa część biblioteki standardowej dostępna jest na wszystkich platformach, dzięki czemu nawet duże aplikacje mogą często być uruchamiane bez konieczności modyfikacji na Uniksach, pod Windows, na Macintoshu i innych platformach. Przeciwnie, niż np. dla Javy, nie ogranicza się zestawu dostępnych funkcji do części wspólnej dla różnych platform; np. na uniksach dostępna jest funkcja os.fork(), choć nie ma jej np. w Windows.
OPERATORY LOGICZNE
- liczbę zero (
0,0.0,0jitp.) FalseNone(null)- puste kolekcje (
[],(),{},set()itp.) - puste napisy (
"","""""") - w Pythonie 2 – obiekty posiadające metodę
__nonzero__(), jeśli zwraca onaFalselub0 - w Pythonie 3 – obiekty posiadające metodę
__bool__(), jeśli zwraca onaFalse
IF ELSE
W programie często musimy obsłużyć następujący scenariusz: wykonać kod, ale tylko pod jakimś warunkiem, w przeciwnym wypadku albo nie robić nic, albo wręcz wykonać zgoła odmienny kod. W takim celu stosujemy instrukcję warunkową if. Spójrzmy na najprostszy przykład:
if warunek:
instrukcja1
instrukcja2
elif warunek2: # gdy warunek nieprawdziwy, sprawdz warunek2
instrukcja3
instrukcja4
elif warunek3: #gdy warunek2 nieprawdziwy, sprawdz warunek3
instrukcja5
instrukcja6
else: #gdy zaden z warunkow nie byl prawdziwy
instrukcja7
instrukcja8
wiek = 35
if wiek >= 18:
print("osoba jest pełnoletnia")
## osoba jest pełnoletnia
wiek = 15
if wiek >= 18:
print("osoba jest pełnoletnia")
PETLE W PHYTON
Dla czytelności, w Pythonie występują tylko dwa rodzaje pętli: for, w której iteracja odbywa się po elementach listy (jak w perlowym foreach), oraz while, która jest powtarzana, dopóki warunek logiczny jest spełniony. Python nie posiada składni for w stylu C, do...while, ani perlowego until, choć oczywiście można uzyskać ich złożone odpowiedniki. Podobnie, Python ogranicza zestaw instrukcji wyboru do if...elif...else – wyeliminowano złożone instrukcje wyboru, czy instrukcje skoków, które w innych językach szczególnie gmatwają czytelność.
for i in range(0, 10):
print(i)
## 0
## 1
## 2
## 3
## 4
## 5
## 6
## 7
## 8
## 9
Spójrzmy teraz na pętlę while:
i = 0
while i < 10:
print(i)
i+=1
## 0
## 1
## 2
## 3
## 4
## 5
## 6
## 7
## 8
## 9
Przejdźmy teraz do przykładu z średnią. Najpierw wersja z pętlą for:
def main():
print("Podaj liczbę ocen, które będą wchodzić w skład średniej")
liczba_ocen = int(input())
suma = 0
for i in range(1, liczba_ocen+1):
print("Podaj ocenę " + str(i))
ocena = float(input())
suma += ocena
print("Suma ocen to " + str(suma))
print("średnia ocen to " + str(suma/liczba_ocen))
if __name__ == "__main__":
main()