오늘의 인기 글
최근 글
최근 댓글
Today
Total
04-29 01:41
관리 메뉴

우노

[Python] random 모듈 정리 본문

Language/Python

[Python] random 모듈 정리

운호(Noah) 2020. 11. 17. 14:36

random 모듈이란?

  • Python에서 난수(random number)를 구할 수 있는 모듈입니다.

  • 일부 자주 사용할 것 같은 함수들만 소개하겠습니다.

  • random 모듈은 import random 한 뒤, random.함수이름() 을 통해 random 모듈에 존재하는 함수들을 가져와 사용할 수 있습니다.

      import random

random.random()

  • (0.0 <= x < 1.0) 범위의 랜덤한 실수(float)를 반환합니다.

      x = random.random()
    
      print(x) # 0.00000~0.999999...

random.uniform(a,b)

  • ( a <= x <= b ) 범위의 랜덤한 실수(float)를 반환합니다.

      x = random.random(10, 20)
    
      print(x) # 10.00000 <= x <= 20.00000

random.randrange(a,b)

  • ( a <= x < b ) 범위의 랜덤한 정수(int)를 반환합니다.

      x1 = random.randrange(10, 20)
    
      print(x1) # 10 <= x < 20

random.randint(a,b)

  • (a <= x <= b) 범위의 랜덤한 정수(int)를 반환합니다.

      x = random.randint(10, 20)
    
      print(x) # 10 <= x <= 20

random.shuffle(seq)

  • random.shuffle(seq) 함수는 순서형 자료(sequence)를 뒤죽박죽으로 섞어놓는 함수입니다.

  • random.suffle(seq) 의 반환은 없고, 인자로 들어온 리스트 내부의 데이터를 무작위로 섞습니다.

    • 매개변수에는 시퀀스 데이터 타입이 들어가게 됩니다.

    • 하지만 내부의 값을 무작위로 바꿔야 하기 때문에

    • 내부인자를 변경할 수 있는 리스트만 가능하게 됩니다. (문자열, 튜플 및 range(a,b)는 불가능)

      arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
      
      print(arr) # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
      
      random.shuffle(arr) # 랜덤셔플
      
      print(arr) # [10, 5, 6, 7, 8, 9, 2, 3, 4, 1] 무작위로 변경됨.

random.choice(seq)

  • random.choice(seq) 함수는 매개변수로 seq 타입을 받아 무작위로 하나의 원소를 뽑는 함수입니다.

    • seq 타입은 문자열, 튜플, range, 리스트 타입들을 말합니다.

      x1 = random.choice('BlockDMask')
      
      print(x1) # 'BlockDMask' 문자열중 랜덤한 문자를 반환

random.sample(seq or set, N)

  • 랜덤하게 여러 개의 원소를 선택합니다.

    • 첫번째 매개 변수로 시퀀스 데이터 타입(튜플, 문자열, range, 리스트) 또는 set 타입을 받을 수 있습니다.

    • 두번째 매개 변수로는 랜덤하게 뽑을 인자의 개수 입니다.

      x1 = random.sample([1, 2, 3, 4, 5],  3)
      
      print(x1) # [4, 1, 5]
  • 특징

    • 겹치지 않는 element를 반환
Comments