[Python] random

chanyeong kim·2022년 1월 16일
0

Python

목록 보기
2/2

random 모듈

파이썬에서 난수 생성 관련 함수들을 모아 놓은 모듈로, import random을 통해 모듈을 불러온 후 random.함수명()의 형태로 사용 가능하다.

1. random.random()

>>> import random
>>> random.random()
0.6847683173176913
  • random() 함수는 0 이상 1 미만의 숫자 중 랜덤으로 실수 하나를 뽑아서 반환을 해준다.

2. random.uniform()

>>> import random
>>> random.uniform(1, 10)
3.955633039092667
  • 내가 지정한 범위의 실수 하나를 뽑고 싶을 때는 uniform() 함수를 사용하면 된다.
  • 1.0 이상 10.0 이하 실수 (float) 중 하나를 랜덤으로 반환한다.

3. random.randrange()

>>> import random
>>> random.randrange(1, 10)
2
  • 내가 지정한 범위의 정수 (int) 하나를 뽑고 싶을 때는 randrange() 함수를 사용한다.
  • 1 이상 10 미만의 정수 (int) 중 하나를 랜덤으로 반환한다.
>>> import random
>>> random.randrange(10)
2
  • 0 이상 10 미만의 정수 (int) 중 하나를 랜덤으로 반환한다.

4. random.randint()

>>> import random
>>> random.randint(1, 10)
3
  • randrange 가 1 이상 10 미만의 정수 하나를 랜덤으로 반환했다면 randint는 1이상 10 이하의 정수 하나를 랜덤으로 반환한다.

5. random.shuffle()

>>> import random
>>> house = ['아파트', '주택', '빌라']
>>> random.shuffle(house)
>>> house
['주택', '빌라', '아파트']
  • shuffle 함수의 매개변수는 시퀀스 데이터 타입이 들어가야 하지만 변경이 가능한 list만 가능하다.
  • 반환은 하지 않고, 리스트 내의 원소 순서를 무작위로 섞어준다.

6. random.choice()

>>> import random
>>> house = ['아파트', '주택', '빌라']
>>> random.choice(house)
'주택'
  • choice 함수는 매개변수로 시퀀스 데이터 타입이 들어가야 한다.
  • 인자로 받은 리스트, 튜플, 문자열, range() 에서 랜덤으로 원소 하나를 반환해준다.
  • 비어있는 시퀀스 타입을 인자로 넣는다면 에러가 발생한다.

7. random.sample()

>>> import random
>>> lunch = ['한식', '중식', '일식', '양식']
>>> random.sample(lunch, 2)
['양식', '일식']
  • sample 함수는 첫번째 매개변수로 시퀀스 데이터 타입 (리스트, 튜플, 문자열, range)과 set 타입을 받고 두번째 매개 변수로는 랜덤하게 뽑을 인자의 갯수를 받는다.
  • 두번째 매개변수가 첫번째 매개변수의 원소 갯수보다 크면 에러가 발생한다.
  • 첫번째 매개변수의 원소들을 순서상관 없이, unique하고 랜덤하게 두번째 매개변수의 갯수 만큼을 뽑아서 리스트로 반환다.
  1. 'AAA' 라는 문자열을 첫번째 인자로, 두번째 인자로 2를 입력한다면 겹치지 않고 순서 상관없이 A,A 또는 A,A 또는 A,A 를 반환한다.
  2. 'ABC' 라는 문자열을 첫번째 인자로, 두번째 인자로 2를 입력한다면 순서 상관없이 겹치지 않게, A,B 또는 B,C 또는 C,A 를 반환한다.

그밖에...

random 모듈은 소개한 함수 외에도 난수 생성기를 초기화 하는 random.seed , 무작위 바이트를 생성하는 random.randbytes 등 여러 함수들을 포함하고 있다. 더 자세한 함수가 궁금하면 👉파이썬 자습서를 확인해 보자!!

💡 요약

>>> import random

# 1. 0(이상) ~ 1(미만) 사이의 실수 반환
>>> random.random()
0.6847683173176913

# 2. 1.0(이상) ~ 10.0(이하) 사이의 실수 반환
>>> random.uniform(1, 10)
3.955633039092667

# 3. 1(이상) ~ 10(미만) 사이의 정수 반환
>>> random.randrange(1, 10)
2

# 4. 1(이상) ~ 10(이하) 사이의 정수 반환
>>> random.randint(10)
10

# 5. 리스트를 무작위로 섞어주기
>>> house = ['아파트', '주택', '빌라']
>>> random.shuffle(house)
>>> house
['주택', '빌라', '아파트']

# 6. 랜덤으로 원소 하나 추출하기
>>> house = ['아파트', '주택', '빌라']
>>> random.choice(house)
'주택'

# 7. 지정한 갯수 만큼 원소를 랜덤으로 추출
>>> lunch = ['한식', '중식', '일식', '양식']
>>> random.sample(lunch, 2)
['양식', '일식']

0개의 댓글