Jak wygenerować liczby losowe w Pythonie (moduł losowy)

Dowiedz się, jak generować liczby losowe w Pythonie. Porównaj randrange, randint i jednolite generowanie pływaka z kontrolą wysiewu.

Wypróbuj to rozwiązanie w Edytorze

Przegląd

Generowanie liczb losowych jest kluczowym wymogiem w programowaniu gier, wybieraniu losowych elementów ze zbiorów danych, pisaniu aplikacji kryptograficznych i przeprowadzaniu symulacji statystycznych. Python udostępnia dedykowaną wbudowaną bibliotekę o nazwie „random”, która obsługuje generowanie liczb pseudolosowych.

Jeśli potrzebujesz losowej liczby całkowitej z określonego zakresu, najpopularniejszym narzędziem jest funkcja `random.randint(a, b)`, która zwraca losową liczbę całkowitą, gdy oba punkty końcowe obejmują. Alternatywnie funkcja „random.random()” generuje liczbę zmiennoprzecinkową z zakresu od 0,0 (włącznie) do 1,0 (wyłącznie), którą można skalować matematycznie w celu dopasowania do niestandardowych granic.

Aby symulacje i testy były powtarzalne, można skorzystać z funkcji `random.seed()`. Podanie początkowej liczby całkowitej gwarantuje, że sekwencja wygenerowanych liczb będzie identyczna przy każdym uruchomieniu kodu. W przypadku operacji kryptograficznych wymagających wysokiego bezpieczeństwa (takich jak generowanie tokenów) należy unikać standardowych generatorów pseudolosowych na rzecz modułu „sekrety”.

Dane wyjściowe kodu i wykonania

Ten skrypt demonstruje generowanie losowych liczb całkowitych, zmiennoprzecinkowych i wybieranie elementów za pomocą modułu losowego.

random_numbers.py
Spróbuj w Edytorze
import random

# Setting a seed for deterministic output in this example
random.seed(42)

# 1. Generate a random integer between 1 and 10 (inclusive)
random_int = random.randint(1, 10)
print("Random Integer (1-10):", random_int)

# 2. Generate a random float between 0.0 and 1.0
random_float = random.random()
print("Random Float (0-1):", round(random_float, 4))

# 3. Select a random element from a list
fruits = ["apple", "banana", "cherry"]
random_choice = random.choice(fruits)
print("Random Choice:", random_choice)
Wyjście terminala
Random Integer (1-10): 2
Random Float (0-1): 0.025
Random Choice: banana

Wdrażanie krok po kroku

  • Zaimportuj losowy moduł na początku skryptu.
  • Użyj random.randint(min, max), aby wygenerować losową liczbę całkowitą, w której oba punkty końcowe są włącznie.
  • Użyj funkcji random.random(), aby wygenerować losową liczbę zmiennoprzecinkową z zakresu od 0,0 do 1,0.

Często zadawane pytania

Jak wygenerować losowy float w niestandardowym zakresie?

Użyj random.uniform(a, b), aby uzyskać losową liczbę zmiennoprzecinkową pomiędzy a i b.

Czy moduł losowy jest bezpieczny do użytku kryptograficznego?

Nie, moduł losowy jest pseudolosowy i nie powinien być używany do celów wrażliwych na bezpieczeństwo. Zamiast tego użyj modułu sekretów.

Powiązane tematy

Polecane zasoby Pythona

Poszerzaj swoją wiedzę dzięki powiązanym interaktywnym samouczkom, ściągawkom i porównaniom kodów.