Cara menggunakan RANDINT pada Python

Katakanlah saya memerlukan angka 3 digit, jadi itu akan menjadi seperti: 

>>> random(3)
563

or

>>> random(5)
26748
>> random(2)
56

Untuk mendapatkan nomor 3 digit acak:

from random import randint
randint(100, 999)  # randint is inclusive at both ends

(dengan asumsi Anda benar-benar berarti tiga digit, bukan "hingga tiga digit".)

Untuk menggunakan angka digit yang sewenang-wenang:

from random import randint

def random_with_N_digits(n):
    range_start = 10**(n-1)
    range_end = (10**n)-1
    return randint(range_start, range_end)

print random_with_N_digits(2)
print random_with_N_digits(3)
print random_with_N_digits(4)

Keluaran:

33
124
5127

Jika Anda menginginkannya sebagai string (misalnya, nomor telepon 10 digit), Anda dapat menggunakan ini:

n = 10
''.join(["%s" % randint(0, 9) for num in range(0, n)])

Apakah 0 dihitung sebagai kemungkinan digit pertama? Jika demikian, maka Anda perlu random.randint(0,10**n-1). Jika tidak, random.randint(10**(n-1),10**n-1). Dan jika nol adalah tidak pernah diizinkan, maka Anda harus secara eksplisit menolak angka dengan nol di dalamnya, atau menggambar nrandom.randint(1,9) angka.

Selain itu: menarik bahwa randint(a,b) menggunakan "pengindeksan" yang agak non-Pythonic untuk mendapatkan nomor acak a <= n <= b. Orang mungkin berharap itu berfungsi seperti range, dan menghasilkan a <= n < b angka acak. (Perhatikan interval atas yang ditutup.)

Mengingat tanggapan dalam komentar tentang randrange, perhatikan bahwa ini dapat diganti dengan random.randrange(0,10**n) yang bersih, random.randrange(10**(n-1),10**n) dan random.randrange(1,10).

Jika Anda membutuhkan angka 3 digit dan ingin 001-099 menjadi angka yang valid, Anda harus tetap menggunakan randrange/randint karena lebih cepat daripada alternatif. Cukup tambahkan nol sebelumnya yang diperlukan saat mengkonversi ke string.

import random
num = random.randrange(1, 10**3)
# using format
num_with_zeros = '{:03}'.format(num)
# using string's zfill
num_with_zeros = str(num).zfill(3)

Atau jika Anda tidak ingin menyimpan nomor acak sebagai int, Anda cukup melakukannya sebagai oneliner:

'{:03}'.format(random.randrange(1, 10**3))

hanya python 3.6+ oneliner:

f'{random.randrange(1, 10**3):03}'

Contoh output di atas adalah:

  • '026'
  • '255' 
  • '512'

Anda dapat menulis sendiri sedikit fungsi untuk melakukan apa yang Anda inginkan:

import random
def randomDigits(digits):
    lower = 10**(digits-1)
    upper = 10**digits - 1
    return random.randint(lower, upper)

Pada dasarnya, 10**(digits-1) memberi Anda angka {digit} -digit terkecil, dan 10**digits - 1 memberi Anda angka {digit} -digit terbesar (yang kebetulan merupakan angka {digit + 1} -digit terkecil minus 1!). Kemudian kita hanya mengambil bilangan bulat acak dari rentang itu.

Jika Anda tidak ingin mengingat semua perintah yang tampaknya acak (seperti saya), Anda selalu dapat menggunakan:

import random
Numbers = range(1, 10)
RandomNumber = random.choice(Numbers)
print(RandomNumber)
#returns a number

Dari dokumentasi resmi , apakah metode sample () tampaknya tidak sesuai untuk tujuan ini?

import random

def random_digits(n):
    num = range(0, 10)
    lst = random.sample(num, n)
    print str(lst).strip('[]')

Keluaran:

>>>random_digits(5)
2, 5, 1, 0, 4

Saya benar-benar menyukai jawaban RichieHindle, namun saya menyukai pertanyaan itu sebagai latihan. Berikut ini adalah implementasi brute force menggunakan string :)

import random
first = random.randint(1,9)
first = str(first)
n = 5

nrs = [str(random.randrange(10)) for i in range(n-1)]
for i in range(len(nrs))    :
    first += str(nrs[i])

print str(first)

Anda bisa membuat fungsi yang mengkonsumsi daftar int, mentransformasikan string untuk menggabungkan dan melakukan int lagi, seperti ini:

import random

def generate_random_number(length):
    return int(''.join([str(random.randint(0,10)) for _ in range(length)]))

Pada tutorial Python ini, kita akan belajar tentang Pengenalan Fungsi Random Number yang biasanya digunakan untuk simulasi aplikasi, testing aplikasi, aplikasi keamanan, maupun aplikasi permainan (games).

Cara menggunakan RANDINT pada Python

 Fungsi Random Number yang akan kita bahas pada tutorial ini meliputi:

  • Fungsi choice(seq)
  • Fungsi randrange([start,]stop[,step])
  • Fungsi random()
  • Fungsi seed([x])
  • Fungsi shuffle(list)
  • Fungsi uniform(x,y)


Fungsi choice(seq)

Fungsi ini akan mengembalikan sebuah item random dari sebuah list, tuple, maupung string. parameter seq merupakan sebuah list, tuple, maupun string.

Contoh Program

#Nama File: random_choice.py

import random

#menampilkan bilangan random dari sebuah list
print ("choice([10, 2, 13, 51, 9, 100, 7]) : ", random.choice([10, 2, 13, 51, 9, 100, 7]))

#menampilkan huruf random dari sebuah string
print ("choice('Belajar Python Asyik') : ", random.choice('Belajar Python Asyik'))

Jika program diatas Anda jalankan berkali-kali, maka akan menghasilkan random output sebagai berikut:

choice([10, 2, 13, 51, 9, 100, 7]) :  13
choice('Belajar Python Asyik') :  y

choice([10, 2, 13, 51, 9, 100, 7]) :  51
choice('Belajar Python Asyik') :  n

choice([10, 2, 13, 51, 9, 100, 7]) :  51
choice('Belajar Python Asyik') :  o

Fungsi randrange([start,]stop[,step])

Fungsi ini akan mengembalikan bilangan random berdasarkan jangkauan atau range(start, stop, step). Dimana start adalah awal dari sebuah range, stop adalah akhir sebuah range, dan step adalah output bilangan random number.

Contoh Program

#Nama File: random_randrange.py

import random

# Menampilkan bilangan random 100 <= number < 1000
print ("randrange(100, 1000, 2) : ", random.randrange(100, 1000, 2))

# Menampilkan bilangan random 100 <= number < 1000
print ("randrange(100, 1000, 3) : ", random.randrange(100, 1000, 3))

Jika program diatas Anda jalankan berkali-kali, maka akan menampilkan bilangan number seperti berikut:

randrange(100, 1000, 2) :  198
randrange(100, 1000, 3) :  709

randrange(100, 1000, 2) :  712
randrange(100, 1000, 3) :  676

randrange(100, 1000, 2) :  670
randrange(100, 1000, 3) :  781

Fungsi random()

Fungsi ini akan mengembalikan bilangan float random x, dimana 0 < x < 1. Fungsi random() tidak memiliki parameter masukan.

Contoh Program

#Nama File: random_random.py

import random

# Menampilkan bilangan float random
print ("random() : ", random.random())

# Menampilkan bilangan float random
print ("random() : ", random.random())

Jika program diatas Anda jalankan berkali-kali, maka akan menghasilkan output bilangan float random seperti berikut:

random() :  0.39980701338337044
random() :  0.5818706054300397

random() :  0.2927022397944453
random() :  0.8995384721832257

random() :  0.08346641780526765
random() :  0.3722392132062019

Fungsi seed([x])

Contoh Program

#Nama File: random_seed.py

import random

random.seed( 10 )
print ("Random number with seed 10 : ", random.random())

# It will generate same random number
random.seed( 11 )
print ("Random number with seed 11 : ", random.random())

# It will generate same random number
random.seed( 12 )
print ("Random number with seed 12 : ", random.random())

Jika program diatas Anda jalan, maka akan menampilkan output bilangan random sebagai berikut:

Random number with seed 10 :  0.5714025946899135
Random number with seed 11 :  0.4523795535098186
Random number with seed 12 :  0.4745706786885481


Fungsi shuffle(list)

Contoh Program

#Nama File: random_shuffle.py

import random

list = [100, 76, 19, 25];
random.shuffle(list)
print ("Reshuffled list : ",  list)

random.shuffle(list)
print ("Reshuffled list : ",  list)

Jika Anda jalankan program diatas, maka akan menghasilkan output sebagai berikut:

Reshuffled list :  [25, 19, 100, 76]
Reshuffled list :  [76, 100, 19, 25]


Fungsi uniform(x,y)

Fungsi uniform(x,y) digunakan untuk menampilkan bilangan float random dengan batas awal bilangan x, dan batas akhir bilangan y.

Contoh Program

#Nama File: random_uniform.py
import random

#Menampilkan random float number dengan batas awal 5 dan batas akhir 10
print ("Random Float uniform(5, 10) : ",  random.uniform(5, 10))

#Menampilkan random float number dengan batas awal 7 dan batas akhir 14
print ("Random Float uniform(7, 14) : ",  random.uniform(7, 14))

Jika Anda jalankan program diatas, maka akan menghasilkan output sebagai berikut:

Random Float uniform(5, 10) :  8.043216077583105
Random Float uniform(7, 14) :  9.231322052003724

Sekian tutorial singkat tentang Pengenalan Fungsi Random Number Pada Python. Semoga bermanfaat & Happy Learning Python Programming.

Salam,

Nursalim

Apa itu Randint pada python?

randint() Fungsi random. randint() menghasilkan angka acak dengan tipe data integer yang berada pada rentang yang telah ditentukan.

Apa itu random pada python?

Fungsi random() digunakan untuk menghasilkan angka acak di Python. Tidak benar-benar acak, melainkan ini digunakan untuk menghasilkan angka pseudo-acak. Itu menyiratkan bahwa angka-angka yang dihasilkan secara acak ini dapat ditentukan.