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개 값을 구해 줍니다.
댓글
댓글 쓰기