Jason. Cała informatyka w jednym miejscu!

Następny moduł jaki mam do zaprezentowania dla początkujących "Pythonowców" to jest moduł "random" :). "random" również posiada pewien zestaw metod przeznaczonych do losowania liczb. Dowiecie się z tego artykułu jak otrzymywać losowe liczby i jak odbywa się losowanie liczb w Pythonie.

MODUŁ "RANDOM". ROZUMIENIE PSEUDOLOSOWOŚCI

Mając już wiedzę na temat istoty samego modułu, można przejść do poznawania następnego z nich. Zanim przejdę do metod, muszę jeszcze wyjaśnić Wam jedną kwestię związaną z prawidłowym nazewnictwem. Dokumentacja Pythona "mówi", że jest tu zawarty generator liczb pseudolosowych. Ktoś może główkować, "jak pseudo, skoro dochodzi faktycznie do tego losowania? Powinno to się określać jako samo losowe, co nie?". Nie o to tu chodzi...

DLACZEGO LICZBY OKREŚLA SIĘ "PSEUDOLOSOWYMI"?

To może być kolejne czepianie się słówek, aczkolwiek rzeczywiście, błędnym określeniem byłoby nazwanie liczb po prostu "losowymi". Moduł "random" nie działa w sposób całkowicie losowy. Losowość w tym przypadku oznaczałaby wylosowanie dowolnej danej "jak leci" bez patrzenia na jakiekolwiek limity. Ale w informatyce te limity się znajdują! Zakres bitów może być nie tylko ograniczany przez programistę, ale także wynika on z samej "natury" typów danych. Liczba całkowita może bez wątpienia pomieścić wartość w bardzo szerokim zakresie, aczkolwiek ten zakres się kiedyś kończy!

Pseudolosowość w tym przypadku oznacza symulację rzeczywistego wylosowania jednej z wartości z określonego przedziału wynikającą z zakresu bitów jakimi może się poruszać. Drugi powód takiego nazewnictwa jest taki, że algorytmy pseudolosujące są najczęściej zaopatrzone w specjalne "ziarna" (ang. "seed"), które kontrolują sekwencję zwracanych "niby losowych" wartości. Jeśli ziarno jest cały czas takie samo, to każda wartość losowana z tych samych przedziałów w tej samej kolejności, będzie zawsze taka sama! Częstą praktyką wśród programistów jest losowanie ziarna przypisując aktualny czas systemu operacyjnego. To pozwala tanim kosztem efektywnie wymusić za każdym razem losowość.

ZESTAW METOD

Moduł "random" zawiera w sobie metody przeznaczone między innymi do generowania liczb pseudolosowych. Teraz przybliżę Wam dwie podstawowe metody jakie są w nim zawarte.

randint()

"randint" pozwala w banalny sposób otrzymać liczbę pseudolosową z podanego w dwóch parametrach przedziału. W pierwszym parametrze podajemy minimum, a w drugim, maksimum. Na wyjściu otrzymujemy zwrot liczby wylosowanej z przedziału:

Metoda "randint" w Pythonie z modułu "random"

Przy pomocy metody "randint", możemy po prostym wywołaniu uzyskać pseudolosową liczbę z określonego przedziału.

Język Python na tyle rozsądnie podchodzi do sprawy, że w sytuacji gdy minimum jest większe od maksimum (pojawia się sprzeczność), następuje natychmiastowe zgłoszenie wyjątku.

shuffle()

Moduł "random" to nie tylko losowanie liczb "od do". Pseudolosowość obejmuje też kolekcje! Mieszanie danych staje się dziecinnie proste przy użyciu metody "shuffle". Po podaniu w parametrze listy z argumentami, wszystkie zawarte w niej dane zostają zamienione miejscami:

Metoda "shuffle" w Pythonie z modułu "random"

"shuffle" miesza kolejność argumentów w podanej w parametrze kolekcji dowolnego typu.

Powyższa metoda nie zwraca żadnej wartości, zatem nie pomylcie się próbując przypisać wynik metody do listy. Trafi ją wtedy szlag, bo zwróci Wam "None" (odpowiednik wartości "null").


Na razie to wszystko. Moduł "random" ma w sobie jeszcze więcej metod, więc nie zrażajcie się do liczby opisanych tutaj. W przyszłości artykuł będzie rozbudowywany o następne opisy.

PODOBNE ARTYKUŁY