파이썬 랜덤 라이브러리

January 23, 2019
python random sample shuffle

파이썬에서 주사위 굴리기 포스트를 쓴 김에 랜덤 모듈 함수를 정리하고 싶어졌습니다. 앞 포스트에서 활용해 본 함수는 다음과 같습니다.

random.randint(start, end) 함수는 두 번째 인자 end도 포함되기에 일반적인 파이썬 관습과는 다르다고 했는데, 그래서 이 함수가 마땅치 않다면 random.randrange를 쓰면 됩니다.

random.randrange(start, end, step)

random.randrange는 1~3개의 인자를 받을 수 있습니다. range 오브젝트와 인자를 받는 방식이 유사하죠. random.randrange(start, end, step)입니다.

    import random

    a = random.randrange(1, 7)
    b = random.randrange(1, 10, 2)
    print(a) # 1~6 사이에 있는 6개의 정수 중 무작위로 추출된 한 개의 정수 출력.
    print(b) # 1, 3, 5, 7, 9 중 무작위로 추출된 한 개의 수 출력.

random.sample(seq, num) -> 표본 추출

random.sample(seq, num) 함수는 인자로 주어진 시퀀스 중 일부를 무작위 추출, 리턴합니다. random.choice(seq)와 비슷하지만, 추출 개수를 지정할 수 있죠. 아니, 반드시 지정해야만 합니다. 지정하지 않으면 인자가 부족해 TypeError가 발생합니다. 그리고 리턴 값은 리스트로 리턴되죠. 1개를 추출하더라도 리스트에 담아 리턴합니다.

    import random

    dice = [1,2,3,4,5,6]
    b = random.sample(dice, 2)
    print(b) # dice 리스트에 포함된 숫자 중 두 개가 임의로 추출. 예를 들면 [2, 5].

random.sample(seq, num) 함수는 특히 수많은 샘플 중에서 일부 표본을 추출할 때 유용합니다. 이때 리스트보다 range 오브젝트를 인자로 넘기면, 메모리도 절약되고 속도도 향상됩니다.

    import random

    xlist = random.sample(range(10000), 10)
    print(xlist) # 0~9999 중 10개의 정수가 임의로 추출.

random.shuffle(seq)

random.shuffle(seq)은 인자로 주어진 시퀀스를 셔플합니다. 단, 리턴값이 없고 기존 시퀀스를 변화시키니 주의해야 합니다.


    import random

    dice = [1,2,3,4,5,6]
    random.shuffle(dice)
    print(dice) # dice 리스트가 셔플된 채 출력. 

파이썬에서 주사위 굴리기

January 23, 2019
python random dice

Hello World

January 23, 2019
hello python