Articles

Python random randrange() i randint (), aby wygenerować losową liczbę całkowitą w zakresie

w tym artykule zobaczymy, jak użyć funkcji Pythonrandom.randrange() Irandom.randint() do wygenerowania losowej liczby. Korzystając z funkcjirandrange() Irandint() modułu losowego możemy wygenerować losową liczbę całkowitą w zakresie. Na przykład, chcesz wygenerować losową liczbę całkowitą z zakresu od 0 do 9, wtedy możesz użyć tych funkcji.

cele tej lekcji. W tej lekcji dowiesz się, jak:

  • Generuj losową liczbę całkowitą w zakresie za pomocą randrange() I randint()
  • Generuj losową liczbę całkowitą tylko o określonej długości
  • Generuj losową liczbę całkowitą wielokrotność n
  • Utwórz listę losowych liczb całkowitych
  • Generuj bezpieczną liczbę losową integer
  • utwórz losową wielowymiarową tablicę losowych liczb całkowitych

Czytaj dalej

  • rozwiąż ćwiczenie generowania losowych danych w Pythonie i quiz generowania losowych danych
  • , Czytaj praca z losowymi danymi w Pythonie (kompletny przewodnik)

jak używać random.randint()

składnia:

random.randint(start, stop)

Ta funkcja zwraca losową liczbę całkowitą w zakresie. Funkcja ta przyjmuje dwa parametry. Oba są obowiązkowe. Na przykład random.randint(0, 100) zwróci dowolną losową liczbę z zakresu od 0 do 100.

randint(start, stop) zawiera zarówno liczby start, jak i stop podczas generowania losowej liczby całkowitej. Wygeneruje losową liczbę z zakresu włącznie.

losowe.randint() przykłady generowania losowych liczb całkowitych

Wyjście:

Random integer from 0 to 9Random integer: 5Random integer from 10 to 100Random integer: 89

uwaga: nie można używać liczby zmiennoprzecinkowej wrandint(). Spowoduje to podniesienie ValueError: non-integer arg 1, jeśli użyjesz wartości innych niż liczba całkowita.
zapoznaj się z tym przewodnikiem, aby wygenerować losową liczbę zmiennoprzecinkową w zakresie.

jak używać random.randrange()

zobaczmy najpierw składnię

Ta funkcja zwraca losowo wybraną liczbę całkowitą z range(start, stop, step). Funkcja ta przyjmuje trzy parametry. Z trzech parametrów dwa parametry są opcjonalne. tj.start Istep są parametrami opcjonalnymi.

  • argument start jest liczbą początkową w zakresie losowym. tj. dolna granica. Domyślną wartością start jest 0, jeśli nie podano.
  • argumentstop jest ostatnią liczbą w zakresie losowym. argumentstop jest górnym limitem.
  • step jest różnicą między każdą liczbą w sekwencji. Krok jest parametrami opcjonalnymi. Domyślną wartością step jest 1, jeśli nie podano.

randrange () przykłady generowania losowych liczb całkowitych w zakresie

tutaj w poniższym przykładzie próbujemy wydrukować losową int w danym zakresie. Ten przykład pokazuje wszystkie warianty funkcjirandom.randrange().

wyjście:

Generate random number within a given range in Python Random integer: 7Random integer: 22Random integer: 180

uwaga: nie można użyć wartości floatrandrange(). Spowoduje to podniesienie ValueError: non-integer arg 1 for randrange(), jeśli użyto wartości innych niż liczba całkowita.

Wygeneruj losową liczbę całkowitą o określonej długości

Co zrobić, jeśli chcesz wygenerować losową liczbę o długościn? Na przykład, chcesz wygenerować losową liczbę o długości 4. Zobaczmy przykład, aby wygenerować losową liczbę o długości 4 używając random.randrange().

wyjście:

First random number of length 4 is 1931Second random number of length 4 is 5715

Uwaga: Jak widać ustawiamy start na 1000 a stop na 10000 ponieważ chcemy wygenerować losową liczbę długości 4 (od 1000 do 9999).

Wygeneruj losową liczbę całkowitą wielokrotność N

w tym przykładzie wygenerujemy losową liczbę między x I y, która jest wielokrotnością 3, Jak 3, 6, 39, 66.

import randomnum = random.randrange(3, 300, 3)print("Random number multiple of 3 is ", num)

Wyjście:

Random number multiple of 3 is 264

generowanie losowej ujemnej liczby całkowitej

zobaczmy, jak wygenerować losową ujemną liczbę całkowitą od -60 do -6.

import randomsingedInt = random.randrange(-60, -6)print("Random negative integer between -60 to -6")print(singedInt)

Wyjście:

Random negative integer between -60 to -6-49

Generuj losowo dodatnią lub ujemną liczbę całkowitą

import randomnum = random.randint(-10, 10)print(num)

losowo Generuj 1 lub -1

import randomnum = random.choice()print(num)

Uwaga: użyliśmy random.choice (), aby wybrać jedną liczbę z listy liczb. Tutaj Nasza lista jest

Generowanie listy losowych liczb całkowitych

w tej sekcji zobaczymy, jak wygenerować wiele losowych liczb. Czasami potrzebujemy przykładowej listy do wykonania testów lub jakiejkolwiek operacji. W tym przypadku zamiast tworzyć ją ręcznie, możemy utworzyć listę z losowymi liczbami całkowitymi używając randint() lub randrange(). W tym przykładzie zobaczymy, jak utworzyć listę 10 losowych liczb całkowitych.

Wyjście:

Printing list of 10 random numbers

w tym przykładzie istnieje szansa na uzyskanie duplikatu liczby na liście

Utwórz listę liczb losowych bez duplikatów

w powyższym przykładzie istnieje szansa na uzyskanie duplikatu liczby losowej na liście. Jeśli chcesz upewnić się, że każda liczba na liście jest unikalna, istnieje prosty sposób na wygenerowanie listy unikalnych liczb losowych. Używając random.sample() możemy utworzyć listę unikalnych liczb losowych.

  • random.sample() zwraca próbkowaną listę wybranych liczb losowych w zakresie wartości.
  • nigdy nie powtarza elementu, dzięki czemu możemy uzyskać listę losowych liczb bez duplikatów

zobaczmy, jak wygenerować 10 losowych liczb całkowitych z zakresu od 0 do 1000.

wyjście:


Jeśli chcesz, aby każda liczba była wielokrotnością n, użyj step parametru range() funkcji. Na przykład, chcesz mieć listę 10 losowych liczb, ale każda liczba całkowita na liście musi być wielokrotnością 5, a następnie użyj random.sample(range(0, 1000, 5), 10)

Czytaj więcej: random.sample()

Sortuj listę losowych liczb

Jeśli chcesz posortować listę losowych liczb całkowitych w kolejności rosnącej, użyj funkcji sort()

Wyjście:

Before sorting random integers listAfter sorting random integers list

Wygeneruj bezpieczną losową liczbę całkowitą

przede wszystkim przykłady nie są kryptograficznie bezpieczne. Kryptograficznie Bezpieczny generator losowy generuje losowe liczby przy użyciu metod synchronizacji, aby zapewnić, że żadne dwa procesy nie mogą uzyskać tej samej liczby w tym samym czasie. Jeśli tworzysz liczby losowe dla aplikacji wrażliwych na bezpieczeństwo, musisz użyć tego podejścia.

Jeśli używasz Pythona w wersji mniejszej niż 3.6 i chcesz wygenerować kryptograficznie bezpieczną losową liczbę całkowitą, użyj funkcji random.SystemRandom().randint()lub random.SystemRandom().randrange(). Zobacz jak zabezpieczyć losowe DANE w Pythonie.

przykład:

wyjście:

Secure random integer is 30Secure random integer is 162

Jeśli używasz Pythona w wersji wyższej niż 3.6, możesz użyć modułu secrets do wygenerowania bezpiecznej, losowej liczby całkowitej.

import secretsprint("Random integer generated using secrets module is ")# from 0 to 10secureNum1 = secrets.randbelow(10)print(secureNum1)

Wyjście:

Random integer generated using secrets module is 8
  • bezpieczne losowe DANE w Pythonie.
  • Python secrets module

Utwórz losową wielowymiarową tablicę losowych liczb całkowitych

moduł NumPy Pythona manumpy.random pakiet do generowania losowych danych. Aby utworzyć losową wielowymiarową tablicę liczb całkowitych w danym zakresie, możemy użyć następujących metod NumPy:

teraz zobaczmy przykład.

generowanie tablicy Int 4 x 4 między 10 a 50, wyłącznie:

wyjście:

4 x 4 array of ints between 10 and 20 inclusive ]

generowanie tablicy int 5 x 3 między 60 a 100, włącznie:

wyjście:

3 x 5 array of ints between 10 and 20 exclusive ]

punkty do zapamiętania o randint() i randrange ()

  • użyjrandint(), gdy chcesz wygenerować losową liczbę z zakresu włącznie.
  • użyjrandrange(), gdy chcesz wygenerować losową liczbę w zakresie, określając wartość kroku. Tworzy losową liczbę z wyjątkowego zakresu.

powinieneś być świadomy pewnych ograniczeń wartości funkcjirandrange().

  • randint() rand randrange() działa tylko z liczbami całkowitymi. Nie można używać liczb zmiennoprzecinkowych.
  • jeśli użyjesz liczb zmiennoprzecinkowych, spowoduje to podniesienieValueError: non-integer arg 1 for randrange(). Zapoznaj się z tym artykułem, aby wygenerować losową liczbę zmiennoprzecinkową między zakresem.
  • krok nie może być równy 0. Jeśli jest ustawiona na 0, otrzymasz ValueError: zero step for randrange()

start nie powinien być większy niż stop, jeśli używasz wszystkich liczb dodatnich. Jeśli przez pomyłkę ustawisz start większy niż stop, otrzymasz ValueError: empty range for randrange()

import randomprint(random.randrange(100, 10, 2))

Wyjście:

ValueError: empty range for randrange()

ale możesz również ustawić wartość start większą niż stop, jeśli używasz ujemnej wartości kroku.

import randomprint(random.randrange(100, 10, -2))

Wyjście:

60

więc co myślisz?

Co sądzisz o tym artykule na randint() I randrange()? A może przegapiłem jedno z zastosowań tych dwóch funkcji. Tak czy inaczej, daj mi znać, zostawiając komentarz poniżej.

spróbuj również rozwiązać poniższe ćwiczenie i quiz, aby lepiej zrozumieć pracę z losowymi danymi w Pythonie.

  • Python random data generation ćwiczenie do Ćwiczenia i opanowania technik generowania losowych danych w Pythonie.
  • Python random data generation Quiz, aby przetestować twoje koncepcje generowania losowych danych.