Kolejny materiał o Pythonie 🐍! Następny moduł jaki sobie omówimy w niniejszym artykule, to jest "random" 😊. "random" w języku Python jest prosty w obsłudze do generowania losowych liczb, nie tylko z określonego przedziału 🎉! Dowiesz się z tego artykułu jakie niektóre metody posiada w sobie moduł "random" i jaka tajemnica kryje się za losowaniem 🔥!

PRZEDSTAWIAM MODUŁ "RANDOM" W JĘZYKU PYTHON!

Najpierw parę zdań o samym module, potem wyjaśnię proces losowania liczb, a następnie przejdziemy do prezentacji metod 😉.

Z CZEGO SKŁADA SIĘ MODUŁ "RANDOM" W JĘZYKU PYTHON?

Moduł "random" jaki występuje w Pythonie to droga do uzyskiwania liczb wylosowanych z określonego przedziału (zdefiniowanego bądź domyślnego) 👍. To jest jego główne zastosowanie, aczkolwiek nie jedyne 😲! Oto co jeszcze potrafi 👇:

  • ustawianie tzw. "ziarna" generatora (ang. seed),
  • losowanie elementu z podanej sekwencji,
  • losowanie liczby zmiennoprzecinkowej (z ułamkiem) z przedziału <0; 1),
  • losowanie liczby całkowitej (bez ułamka) z uwzględnieniem górnej granicy.

Część punktów może budzić zaskoczenie, natomiast w dalszej części wszystko wytłumaczę 🙂. Dodam, że zawsze masz do dyspozycji oficjalną dokumentację Pythona, w której znajdziesz pełną gamę metod udostępnianych przez moduł "random" w języku Python ℹ️.

Przechodzimy do ukazania części praktycznej 🚀!

JAK SKORZYSTAĆ Z MODUŁU "RANDOM" W JĘZYKU PYTHON?

Moduł "random" i jego metody do losowania liczb nie są dostępne od razu 🔒. Najpierw trzeba go zaimportować przy użyciu słowa kluczowego "import" 💡! Na samej górze swojego programu, dopisz tę linijkę 👇:

import random

"import" sprawia, że dostęp do zawartości modułu będzie obejmował całość ✅. Gdyby kiedykolwiek interesowała Cię tylko jedna z metod (bądź wartości), możesz połączyć instrukcję importu ze słowem kluczowym "from", pisząc o tak 👇:

from random import [wartość/metoda występująca w module]

Oba sposoby importowania mają późniejszy wpływ na przedostawanie się do nich i więcej informacji na ten temat zamieszczę w osobnych artykułach o "import" i "from" ℹ️. Ja będę prezentował przykłady po zastosowaniu pierwszego zapisu 🙂.

JAK METODY POSIADA MODUŁ "RANDOM" W JĘZYKU PYTHON?

Moduł "random" w Pythonie, składa się między innymi z poniższych metod 👇:

  • seed,
  • choice,
  • random,
  • randint.

Pamiętaj, że zawsze możesz zajrzeć do oficjalnej dokumentacji Pythona, aby dowiedzieć się o jeszcze innych metodach 😄! W tym artykule skupię się tylko na tych.

SEED

Metoda "seed" służy do ustawiania tzw. "ziarna" dla generatora liczb 😮. To ma związek z samym procesem wyznaczania losowych liczb, a w rzeczywistości "pseudolosowych" 💥! Dla zaciekawionych tematem, zostawiłem na samym dole wytłumaczenie dlaczego określa się to "pseudolosowością" ⬇️.

Tak czy inaczej, oto przykład 👇:

random.seed(1)

Samo użycie tej metody nie przyniesie żadnego widocznego skutku, natomiast zszokuje Cię on w momencie korzystania z innych metod do losowania liczb 😁! Tak jak pisałem - wyjaśnienie tego wątku zostawiłem na samym dole 😉.

Metoda "seed" modułu "random" w języku Python

Metoda "seed" ustawia "ziarno" dla generatora liczb pseudolosowych, wpływając na zawartość sekwencji.

CHOICE

"choice" przyjmuje sekwencję elementów np. łańcuchów znaków (bo nie muszą to być jedynie liczby) i zwraca losowo jeden z nich 👍. Gdy mamy na przykład taką listę 👇:

strings = ['A', 'B', 'C']

to możemy łatwo uzyskać losowy element przy użyciu metody "choice" 👇:

print(random.choice(strings))

i uniknąć wyznaczania przedziału liczbowego, aby był zgodny z notacją indeksową (od 0 do N - 1) i odwoływania się do elementu poprzez indeks, tak jak często trzeba robić w innych językach 😅.

Metoda "choice" modułu "random" w języku Python

Metoda "choice" służy do zwracania losowego elementu z podanej sekwencji np. listy.

RANDOM

Moduł "random" posiada metodę "random" 😁! To jest wyznaczanie losowej wartości z przedziału <0; 1) jako liczba zmiennoprzecinkowa (z ułamkiem) ✨. Zwróć uwagę, że nie uwzględnia górnej granicy (nawias okrągły prawej strony przedziału ⚠️) 😱! A to jest przykład 👇:

print(random.random())

Za każdym razem gdy uruchomisz program z taką instrukcją, dostrzeżesz inną liczbę ✔️. Niezależnie jaka by nie była, zawsze będzie z przedziału od 0 do 0.(9), pisząc w postaci ułamka okresowego 🙂.

Metoda "random" modułu "random" w języku Python

Metoda "random" wyznacza losową liczbę zmiennoprzecinkową (z ułamkiem) z przedziału <0; 1). Przedział nie uwzględnia górnej granicy.

RANDINT

Metoda "randint" (skrót od "random integer" ℹ️) umożliwia wylosowanie liczby z przedziału "od do" i uwaga, ona będzie całkowita (bez ułamka) 😲! Ponadto uwzględnia górną granicę, w przeciwieństwie do "random" 💥! Prosty przykład użycia 👇:

print(random.randint(1, 5))

Uruchomienie programu, wylosuje za każdym razem inną liczbę z przedziału od 1 do 5 ✔️.

Python nie pozwoli na sytuację, w której minimalny zakres jest większy od maksymalnego, więc jeżeli spróbujesz wstawić coś takiego 👇:

print(random.randint(6, 5))

to skończy się awarią programu w postaci zgłoszenia wyjątku typu "ValueError" (zakres liczb jest pusty, bo pojawia się sprzeczność ❌). Przechwytywanie wyjątków jest nieco bardziej złożonym zagadnieniem, które zostało opisane w załączonym materiale ℹ️.

Metoda "randint" modułu "random" w języku Python

Metoda "randint" wyznacza losową liczbę całkowitą (bez ułamka) z podanego przedziału "od do". Przedział uwzględnia górną granicę.

Zakończyliśmy omawianie metod jakie wypisałem wcześniej, więc tutaj się kończy podstawowa część materiału 🏁. Jeżeli jednak interesuje Cię skąd powstają losowe liczby w Pythonie, zapraszam do dalszej lektury 😊!

Gdy zajrzysz do dokumentacji, to zobaczysz hasło "pseudolosowanie" 💥. Gdy mowa o losowaniu liczb w informatyce, to używanie pojęcia "losowania", jest niewłaściwe 🚫!

Przechodzę do wytłumaczenia tego zagadnienia ⏩!

DLACZEGO ZASTOSOWANIE MODUŁU "RANDOM" W JĘZYKU PYTHON JEST OKREŚLANE "PSEUDOLOSOWANIEM"?

Komputer, aby mógł wygenerować liczbę, którą postrzegamy za wylosowaną, potrzebuje jednej ważnej informacji: "ziarna" 🔥! "Ziarno" (ang. seed) to nic innego, jak liczba całkowita (bez ułamka), która trafia do generatora liczb pseudolosowych ➡️. W rzeczywistości, nie ma tutaj żadnego "prawdziwego" losowania 😱!

Generator liczb pseudolosowych, gdy otrzymuje daną wartość "ziarna", tworzy zawczasu pewną sekwencję liczb ułożonych w kolejności, tak jak w liście (strukturze danych przechowującej wiele elementów, która zapamiętuje ich kolejność dodawania ℹ️) 📦. Oznacza to, że jeżeli generator będzie otrzymywać to samo "ziarno", to poszczególne funkcje odpowiedzialne za "pseudolosowanie" liczby będą zwracać takie same wartości 😮!

Obrazując to na kodzie źródłowym, gdy będziemy mieli to samo "ziarno" (nieważne jakiej wartości), to poniższe instrukcje 👇:

print(random.random())
print(random.random())

zwrócą nam takie same wartości każdorazowo 💥! Zatem, nie ma żadnego losowania, tylko jest generowanie innej sekwencji liczb zależnie od podanego "ziarna" 🎯! Dlatego prawidłowo określa się to "pseudolosowaniem" 💡!

Więcej informacji możesz przeczytać z artykułu dotyczącego już "ogólnie" programowania ℹ️.


Koniec prezentacji modułu "random" w języku Python 🙂. Wyjaśniłem prostym językiem co to za moduł, jakie ma przykładowe metody i dlaczego mamy tak naprawdę do czynienia z "pseudolosowaniem" 🎉.

PODOBNE ARTYKUŁY