import random print random.randint(1,20)
Załóżmy że chcemy stworzyć elektroniczną wersję planszowego RPG w którym używana jest kostka 20 ścienna. Będzie nam potrzebna jakaś funkcja, która wylosuje nam liczbę z zakresu od 1 do 20. Zagadnienia liczb losowych raczej nie są częścią tego samouczka, więc jak się spodziewasz w Pythonie powinno być już coś, co pozwoli nam losować takie liczby. Jeśli tak, to masz rację, ale musimy użyć dodatkowego modułu/biblioteki.
Biblioteki zawierają najczęściej tematyczny zbiór funkcji i klas (na razie nie musisz wiedzieć co to są klasy). W naszym przypadku będzie to zbiór dotyczący liczb losowych zawierający funkcję pozwalającą losować liczbę z danego zakresu.
Przejdźmy zatem do jego zaimportowania i przykładu użycia funkcji randint (której działania mam nadzieję nie muszę tłumaczyć)
import random print random.randint(1,20)
kiedy importujemy jakiś moduł aby dostać się do funkcji w nim zawartej musimy użyć jego nazwy. Jest to związane z przestrzeniami nazw, to znaczy w naszym programie mogły by wystąpić funkcje o tej samej nazwie i nie mieli byśmy jak dostać się do funkcji z modułu random.
Jeśli jednak wiemy, że chcemy użyć tylko jednej funkcji z danej biblioteki możemy zaimportować tylko ją i mieć do niej bezpośredni dostęp. Zobaczmy to na przykładzie funkcji sleep z modułu time, która to funkcja pozwala odczekać daną ilość sekund.
from time import sleep sleep(10)
Najważniejszą chyba wiadomością w tym rozdziale jest to, że tak samo możesz importować swoje funkcje!
Na potrzeby tego samouczka załóżmy, że wymaga to aby plik z którego będziemy chcieli zaimportować znajdował się w tym samym folderze (może też znajdować się w folderze ze wszystkimi dodatkowymi pakietami Pythona, ale nie oszukiujmy się, na początku nauki nie napiszesz czegoś na tyle dopracowanegoo by używać tego na stałe, a nie warto zaśmiecać folderów z instalacją Pythona).
Stwórzymy więc sobie plik o nazwie funkcje.py zawierający następujący kod
def a(): print "A" def b(): print "B"
A następnie uruchom interpreter w tym folderze i zaimportuj wszystkie funkcje bezpośrednio za pomocą
from funkcje import * a() b()
Gwiazdka oznacza, że chcemy zaimportować wszystko a składnia mówi nam, że będziemy mieć do funkcji bezpośredni dostęp.
Ostanią rzeczą o krórej warto jest wspomnieć i która (przynajmniej według mnie) przydaje się niesamowicie często są "słowniki domyślne" z pakietu collections. Działają one podobnie do normalnych słowników z tą różnicą, że kiedy pytamy o wartość klucza którego w słowniku jeszcze nie ma, nie dostaniemy błędu, lecz wartość domyślną oraz para klucz:wartość zostanie zapisana w słowniku.
Jest to bardzo użyteczne we wszelkiego rodzaju zliczeniach.
from collections import defaultdict d = defaultdict(int) print d['x'] napis = "aaabbccoooossasdk" for litera in napis: d[litera] += 1 print d