티스토리 뷰

반응형

이전포스팅에서 파이썬 라이브러리 함수 sys, pickle, os, shutil, glob, time, calendar에 대해 알아보았고 오늘은 random 에 대해 알아보도록 하겠습니다.

random은 난수(규칙이 없는 임의수)를 발생히키는 모듈입니다. 

  • randint(최소, 최대) : 입력 파라미터인 최소부터 최대까지 중 임의의 정수를 리턴한다
  • random() : 0 부터 1 사이의 부동소수점(float) 숫자를 리턴한다
  • uniform(최소, 최대) : 입력 파라미터인 최소부터 최대까지 중 임의의 부동소수점(float) 숫자를 리턴한다
  • randrange(시작,끝[,간격]) : 입력 파라미터인 시작부터 끝값까지 (지정된 간격으로 나열된) 숫자 중 임의의 정수를 리턴한다

1
2
3
>>> import random
>>> random.random()
0.07419618930493
cs

다음은 1부터 10사이에 정수 중에서 난수 값을 돌려줍니다. 

1
2
3
4
5
6
7
8
9
10
>>> random.randint(1,10)
4
>>> random.randint(1,10)
8
>>> random.randint(1,10)
9
>>> random.randint(1,10)
3
>>> random.randint(1,10)
2

ecs


다음은 1부터 45사이의 정수중에 난수 값을 돌려준다.

1
2
3
4
5
6
7
8
9
10
>>> random.randint(1,45)
38
>>> random.randint(1,45)
5
>>> random.randint(1,45)
17
>>> random.randint(1,45)
11
>>> random.randint(1,45)
42
cs

그러면 이렇게 랜덤함수 하면 만들고 싶은 프로그램이 생각이 난다! 로또? 안그런가?

로또는 45개의 숫자중 6개를 맞추는 게임이다. 숫자는 중복되지 않고 순서는 상관이 없다. 랜덤으로 45개의 숫자가

적혀 있는 공이 뽑히면 그 6개의 번호가 맞는 순서대로 상금을 갖게 되는 로또. 

그럼 45개의 정수중에 6개를 랜덤으로 뽑아보자. 단 3줄이면 된다.. 너무 간단하지 않은가?

1
2
3
4
5
>>> import random
>>> lotto = random.sample(range(1,46),6)
>>> print(lotto)
[2435220388]
>>> 
cs

1부터 45개이니 46까지범위를 정하고 sample함수를 사용한다. 

 random 모듈에서 sample(컬렉션, 샘플수) 함수는 지정된 컬렉션으로부터 샘플수만큼 랜덤 추출을 하는 함수이다.

반응형
댓글