파이썬에서 랜덤값 사용방법

random은  파이썬에서 랜덤한 숫자를 얻기 위해 사용하는 모듈입니다. 간단히 사용법을 정리해 봤습니다.

1. random.seed()

컴퓨터에서 생성하는 랜덤값은 엄밀히 말하면 완전 랜덤은 아닙니다. 계산식에 의해서 만드는 유사 랜덤 값입니다. 따라서 seed 에 들어가는 숫자가 동일하면 나오는 랜덤 값도 동일합니다. 

별도로 파이썬에선 위 명령을 주지 않아도 import 될때 현재 시간이 seed 가 되어서 적용되지만 원한다면 명시적으로 seed 를 호출할 수 있습니다. seed 에 원하는 숫자를 인자로 사용할 수 있으며 만일 위처럼 인자를 넣지 않을 경우 seed 는 현재시간을 사용합니다.

2. random.random() 

     0.0 <= x < 1.0 사이의 값을 출력합니다.

3. random.uniform(a.4, b.7)

     a.4 <= x < b.7  사이의 값을 출력합니다.

4. random.randrange(b)

     0 <= x < b 사이의 정수를 출력합니다.

5. random.randrange(a,b)

     a <= x < b  사이의 정수를 출력합니다.

6. random.randint(a,b)

     a <= x <= b  사이의 정수를 출력합니다.

>>> import random
>>> random.random()
0.3594656143224264
>>> random.uniform(3.5,4.2)
3.6876359136188914
>>> random.randrange(8,10)
8
>>> random.randint(5,10)
6  

위와 같이 사용하면 됩니다.

>

위의 함수 외에 좀 수고를 덜어 줄 수 있는 함수들도 있습니다. 

만약에 오늘 점심메뉴에 뭘 먹을지 고민된다면....이걸 파이썬의 랜덤에 맡긴다면 다음과 같이 하면 됩니다.

>>> a=['짜장면','피자','라면','된장찌개','김치찌개']
>>> random.choice(a)
'김치찌개'

 

만일 로또 번호를 파이썬의 랜덤함수로 구한다면 어떻게 하면 될까요.

>>> l=[i for i in range(1,46)]
>>> l
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45]
>>> random.shuffle(l)
>>> l
[31, 17, 25, 36, 20, 43, 34, 18, 1, 35, 42, 22, 44, 28, 13, 16, 14, 26, 10, 23, 8, 15, 3, 6, 37, 41, 29, 24, 45, 40, 27, 4, 30, 32, 39, 38, 19, 9, 11, 33, 2, 12, 21, 7, 5]

shuffle 함수로 리스트를 섞었습니다. 앞의 숫자 6개를 사용하면 되겠죠. 

 

좀 더 깔금하게 아예 6개 숫자만 얻는 방법도 있습니다. 

>>> l=[i for i in range(1,46)]
>>> l
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45]
>>> random.sample(l,6)
[36, 10, 18, 32, 22, 26] 

임의의 6개 값을 구해 줍니다. 

 

댓글