ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Python] 5. 랜덤 함수(random, randrange, randint, choice)
    Programming/Python 2021. 7. 5. 20:00

     

    [1] random() 이용

    from random import *
    print(random()) # 0.0 ~ 1.0 미만의 임의의 값 생성
    print(random() * 10) # 0.0 ~ 10.0 미만의 임의의 값 생성
    print(int(random() * 10)) # 0.0 ~ 10.0 미만의 임의의 정수 값 생성
    print(int(random() * 10) + 1) # 1.0 ~ 11.0 미만의 임의의 정수 값 생성
                                  # 즉, 1.0 ~ 10.0 미만의 임의의 정수 값 생성

    from random import * 을 통해 random 모듈을 import해야 random() 함수를 사용할 수 있다. 

     

    random() 함수는 0 ~ 1.0 미만의 임의의 값을 생성할 수 있으며, 원하는 범위 내에 있는 임의의 값을 출력하기 위해선 적절한 수를 더하고 곱해주어야 한다. 

     

    또한, 임의의 정수 값을 출력하고 싶다면, int로 Casting을 해주어야 한다.

     

     

    [2] randrange()

    from random import *
    print(randrange(0, 10)) # 0 ~ 10 미만의 임의의 정수 값 출력
    print(randrange(0, 11)) # 0 ~ 11 미만의 임의의 정수 값 출력
                            # 즉, 0 ~ 10 이하의 임의의 정수 값 출력

    [1]에서 다룬 random() 함수를 통해 임의의 정수 값을 출력하는 것은 생각보다 번거로울 수 있다. 원하는 범위에 따라 수를 곱해주고 더해주어야 하며, int형으로 Casting 해주어야 하기 때문이다.

     

    이를 보완하기 위해, randrange()라는 함수가 있다. 원하는 범위를 입력하면 그 범위 내에 있는 임의의 정수 값을 반환하여준다. 

     

    이 때 주의해야할 점은, randrange(0, 10) 은 0 ~ 10 미만의 임의의 정수값을 출력한다. 즉, 0 ~ 9 사이의 임의의 정수값을 출력하는 것이다. 따라서, 0 ~ 10 사이의 임의의 정수값을 출력하고 싶다면, randrange(0, 11)과 같이 함수를 작성해야한다.

     

     

    [3] randint()

    from random import *
    print(randint(0, 10)) # 0 ~ 10 이하의 임의의 정수 값 출력

    [2]에서 다룬 randrange()는 0 ~ 10 사이의 임의의 정수값을 출력하고 싶을 때, randrange(0, 11)와 같이 함수를 작성해야 했다. 이러한 표현은 우리의 입장에서 조금 헷갈릴 수도 있다.

     

    이러한 불편함을 해소하기 위해, randint() 함수를 사용할 수 있다. randint(0, 10)은 0 ~ 10 이하의 임의의 정수 값을 반환해준다. 따라서 randrange()에 비해, 보다 직관적으로 받아들여지는 함수라는 생각이 든다.

     

     

    [4] choice()

    from random import *
    language = choice(["C", "C++", "Python", "Java"])
    print(language)

    위 코드에서 볼 수 있는 choice() 함수는 아무 원소나 뽑아주는 함수라고 생각하면 된다.

    C, C++, Python, Java 중 한 원소가 랜덤으로 뽑힌 후 language에 할당되는 것이다. 

     

     

    [5] shuffle(list)

    from random import *
    lst = [1, 2, 3, 4, 5]
    print(lst) # [1, 2, 3, 4, 5]
    shuffle(lst)
    print(lst) # [2, 5, 4, 3, 1]

    위와 같은 리스트 내 자료들을 무작위로 섞어주는(shuffle) 함수이다. 

     

     

    [6] sample(list,value) 

    from random import *
    lst = [1, 2, 3, 4, 5]
    print(lst) # [1, 2, 3, 4, 5]
    print(sample(lst,3)) # [5, 3, 2]

    위와 같은 리스트 내 자료들 중, 원하는 수만큼 무작위로 뽑을 수 있는 함수이다. 

    choice는 한 가지만 뽑을 수 있었다면, sample은 원하는 수만큼 뽑을 수 있다는 장점이 존재한다.

     

     

     

     

    *본 글은 코딩 유튜버 '나도코딩'님의 무료강의를 바탕으로 내용을 정리 및 추가한 글입니다.

    https://www.youtube.com/watch?v=kWiCuklohdY&t=5934s 

     

     

    'Programming > Python' 카테고리의 다른 글

    [Python] 7. 문자열 처리 함수  (0) 2021.07.07
    [Python] 6. 슬라이싱(Slicing)  (0) 2021.07.05
    [Python] 4. 숫자 처리 함수  (0) 2021.07.04
    [Python] 3. 연산자  (0) 2021.07.04
    [Python] 2. 변수  (0) 2021.07.04
Designed by Tistory.