Articles

Python náhodné randrange() a randint() generovat náhodné celé číslo v rozsahu

V tomto článku se budeme vidět, jak používat Python random.randrange()random.randint() funkce pro generování náhodných čísel. Pomocí randrange()randint() funkce náhodné modulu můžeme generovat náhodné celé číslo v rozsahu. Například chcete vygenerovat náhodné celé číslo mezi 0 až 9, pak můžete tyto funkce použít.

cíle této lekce. V této lekci se naučíte, jak:

  • Generovat náhodné celé číslo v rozmezí pomocí randrange()randint()
  • Generovat náhodné celé číslo s konkrétní délka
  • Generovat náhodné celé číslo násobek n
  • Vytvořit seznam náhodných čísel
  • Generovat bezpečné náhodné celé číslo
  • Vytvořit vícerozměrné náhodné pole náhodné celá čísla

Další čtení

  • Vyřešení Python Generování Náhodných Dat Cvičení a Generování Náhodných Dat Kvíz
  • Také, přečtěte si práci s náhodnými daty v Pythonu (Kompletní průvodce)

jak používat random.randint()

Syntaxe:

random.randint(start, stop)

Tato funkce vrací náhodné celé číslo v rozsahu. Tato funkce má dva parametry. Oba jsou povinné. Například random.randint(0, 100) vrátí libovolné náhodné číslo mezi 0 až 100.

randint(start, stop) zahrnuje počáteční I stop čísla při generování náhodného celého čísla. Vygeneruje náhodné číslo z inkluzivního rozsahu.

náhodné.randint() příklady generování náhodných celých čísel

Výstup:

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

Poznámka: nelze použít float číslo v randint(). Zvýší ValueError: non-integer arg 1, pokud používáte jiné hodnoty než celé číslo.
podle této příručky Vygenerujte náhodné číslo plováku v rozsahu.

jak používat random.randrange()

podívejme se na syntaxi první

random.randrange(start, stop)

Tato funkce vrací náhodně vybrané celé číslo z range(start, stop, step). Tato funkce má tři parametry. Ze tří parametrů jsou dva parametry volitelné. start a step jsou volitelné parametry.

  • argument start je počáteční číslo v náhodném rozsahu. tedy dolní mez. Výchozí hodnota start je 0, pokud není zadána.
  • argument stop je poslední číslo v náhodném rozsahu. argument stop je horní mez.
  • step je rozdíl mezi každým číslem v pořadí. Krokem jsou volitelné parametry. Výchozí hodnota step je 1, pokud není zadána.

náhodné.randrange() Příklady generování náhodných celých čísel v rozsahu

v následujícím příkladu se snažíme tisknout náhodné int v daném rozsahu. Tento příklad ukazuje všechny varianty funkce random.randrange().

Výstup:

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

Poznámka: nelze použít hodnota float randrange(). Zvýší ValueError: non-integer arg 1 for randrange(), pokud jste použili jiné hodnoty než celé číslo.

Generovat náhodné celé číslo z určitého délka

Co když chcete vygenerovat náhodné číslo délky n? Například chcete vygenerovat náhodné číslo délky 4. Podívejme se na příklad, jak vygenerovat náhodné číslo délky 4 pomocí random.randrange().

Výstup:

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

Poznámka: Jak můžete vidět, jsme si stanovili start na 1000 a zastavit 10000, protože chceme generovat náhodné číslo délky 4 (1000-9999).

Generovat náhodné celé číslo násobek n

V tomto příkladu budeme generovat náhodné číslo mezi x a y, které je násobkem 3 jako 3, 6, 39, 66.

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

Výstup:

Random number multiple of 3 is 264

Generovat náhodné záporné číslo

podívejme se, jak vygenerovat náhodné negativní celé číslo mezi -60 až -6.

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

Výstup:

Random negative integer between -60 to -6-49

Generovat náhodné kladné nebo záporné celé číslo,

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

Náhodně generovat 1 nebo -1

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

Poznámka:: použili jsme náhodné.volba () pro výběr jednoho čísla ze seznamu čísel. Zde je náš seznam

Vygenerujte seznam náhodných celočíselných čísel

v této části uvidíme, jak vygenerovat více náhodných čísel. Někdy potřebujeme ukázkový seznam k provedení testování nebo jakékoli operace. V tomto případě, namísto vytváření ručně, můžeme vytvořit seznam náhodných čísel pomocí randint() nebo randrange(). V tomto příkladu uvidíme, jak vytvořit seznam 10 náhodných celých čísel.

výstup:

Printing list of 10 random numbers

V tomto příkladu, tam je šance se dostat duplicitní číslo v seznamu.

Vytvořit seznam náhodných čísel, aniž by duplikáty

Ve výše uvedeném příkladu, tam je šance se dostat duplicitní náhodné číslo v seznamu. Pokud se chcete ujistit, že každé číslo v seznamu je jedinečné, existuje jednoduchý způsob, jak vygenerovat seznam jedinečných náhodných čísel. Pomocí náhodného.vzorek() můžeme vytvořit seznam jedinečných náhodných čísel.

  • random.sample() vrací vzorkovaný seznam vybraných náhodných čísel v rozsahu hodnot.
  • nikdy neopakuje prvek, takže můžeme získat seznam náhodných čísel bez duplikátů

podívejme se, jak generovat 10 náhodných celých čísel od rozsahu 0 do 1000.

Výstup:


Pokud chcete, aby každý číslo násobkem n, pak použijte step parametr range() funkce. Například, chcete seznam 10 náhodných čísel, ale každé číslo v seznamu musí být násobkem 5, pak použijte random.sample(range(0, 1000, 5), 10)

Přečtěte si Více: náhodný.vzorek()

Seřadit náhodná čísla seznam

Pokud chcete seřadit seznam náhodných čísel ve vzestupném pořadí pomocí sort() funkce

Výstup:

Before sorting random integers listAfter sorting random integers list

Generovat bezpečné náhodné celé číslo

Výše uvedené příklady nejsou kryptograficky bezpečné. Kryptograficky Bezpečný náhodný generátor generuje náhodná čísla pomocí synchronizačních metod, aby zajistil, že žádné dva procesy nemohou získat stejné číslo současně. Pokud vytváříte náhodná čísla pro aplikaci citlivou na zabezpečení, musíte tento přístup použít.

Pokud používáte Python verze nižší než 3,6, a chcete generovat kryptograficky bezpečné náhodné celé číslo, pak použijte random.SystemRandom().randint() nebo random.SystemRandom().randrange() funkce. Viz jak zabezpečit náhodná data v Pythonu.

příklad:

výstup:

Secure random integer is 30Secure random integer is 162

Pokud používáte verzi Pythonu vyšší než 3.6, můžete pomocí modulu secrets vygenerovat bezpečné náhodné celé číslo.

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

Výstup:

Random integer generated using secrets module is 8
  • Bezpečné náhodných dat v pythonu.
  • Python tajemství modul

Vytvořit vícerozměrné náhodné pole náhodné celá čísla

Python NumPy modul má numpy.random balíček generovat náhodná data. Pro vytvoření náhodného vícerozměrného pole celých čísel v daném rozsahu můžeme použít následující NumPy metody:

nyní se podívejme na příklad.

Generování 4 x 4 pole celých čísel mezi 10 a 50, exkluzivní:

Výstup:

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

Generování matice 5 x 3 ints mezi 60 a 100, včetně:

Výstup:

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

Body k zapamatování o randint() a randrange()

  • Použití randint() když chcete vygenerovat náhodné číslo od inkluzivní rozsahu.
  • použijte randrange() Chcete-li vygenerovat náhodné číslo v rozsahu zadáním hodnoty kroku. Vytváří náhodné číslo z exkluzivního rozsahu.

měli byste si být vědomi některých hodnotových omezení funkce randrange().

  • randint() rand randrange() pracuje pouze s celými čísly. Nemůžete použít plovoucí čísla.
  • pokud použijete plovoucí čísla, zvýší se ValueError: non-integer arg 1 for randrange(). V tomto článku Vygenerujte náhodné floatové číslo mezi v rozsahu.
  • krok nesmí být 0. Pokud je nastavena na 0, dostanete ValueError: zero step for randrange()

start by neměl být větší než stop, Pokud používáte všechna kladná čísla. Pokud omylem nastavíte start větší než zastavit budete mít ValueError: empty range for randrange()

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

Výstup:

ValueError: empty range for randrange()

Ale, můžete také nastavit počáteční hodnotu větší, než je zastavit, pokud používáte negativní hodnota kroku.

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

výstup:

60

tak co si myslíte?

chci od vás slyšet. Co si myslíte o tomto článku na randint() a randrange()? Nebo mi možná chybělo jedno z použití těchto dvou funkcí. Ať tak či onak, dejte mi vědět zanecháním komentáře níže.

zkuste také vyřešit následující cvičení a kvíz, abyste lépe porozuměli práci s náhodnými daty v Pythonu.

  • Python náhodné generování dat cvičení procvičit a zvládnout techniky generování náhodných dat v Pythonu.
  • Python random data generation Quiz pro testování konceptů generování náhodných dat.