-
[Python] 파이썬 랜덤 추첨 프로그램 만들어보기Python/파이썬 기초 2023. 8. 4. 08:28반응형
파이썬에서 랜덤 추첨 프로그램 만들어보기
어떤 데이터가 무더기가 있고, 이중에서 무작위로 데이터를 추출하는 방식의 작업은 아주 낮은 난이도의 자동화 작업입니다. 파이썬(Python)에서는 흔히 로또 번호 추첨 프로그램 만들기 실습 등으로 구현하는데요, 이번에는 파이썬을 이용해서 몇 가지 랜덤 추첨 프로그램을 만들어보는 작업을 해 보도록 하겠습니다. 이번에 만들 프로그램은 아래와 같습니다.
- 특정한 범위 안에서 무작위 당첨 번호를 하나 추첨하는 프로그램.
- 1의 프로그램에서 중복은 제외하고 여러 숫자를 뽑는 프로그램. 로또 번호 추첨 프로그램과 같은 형식이지요.
사람이 숫자를 추첨할 때는 두 행동의 차이가 거의 없지만, 프로그램으로 구현할 때는 편의상 다른 코드를 사용합니다. 만약에 학교를 다닐 때 조합(combination)에 대한 개념을 배워보신 분들이라면 이해하기가 쉬울거라고 생각되네요. 두 프로그램 중 전자는 주로 random 모듈을 이용하고, 후자는 넘파이(numpy)를 이용해 간단하게 구현할 수 있습니다. 이번에는 1에서 100까지의 숫자 중 하나, 또는 중복을 제외하고 6개를 뽑는 프로그램을 만들어 보도록 하겠습니다.
# 패키지 불러오기 import random import numpy as np
# 숫자 하나만 뽑는 프로그램 random_num1 = random.randint(1, 100)
여기서 위의 프로그램은
randint
라는 함수를 사용했습니다. 이 함수는 (x, y) 범위가 주어질 경우, x 이상 y 이하 범위에서 무작위 숫자를 추출하는 기능을 가지고 있지요. 여기서, 주의할 점은 슬라이싱이나range
함수처럼 x 이상 y 미만이 아니라는 점 을 주의해 주시기 바랍니다.# 중복을 제외하고 숫자 6개를 뽑는 프로그램 random_num2 = np.random.choice(range(1, 101), 6, replace=False)
그리고, numpy.random에서 지원하는
choice
함수를 이용할 경우 여러 숫자를 한꺼번에 추첨해 리스트로 반환받을 수 있습니다. 이 때, 해당 함수는범위 정보와 뽑을 숫자의 개수, replace 옵션
을 받습니다. 범위 정보는 리스트로 나타낼 수 있는 임의의 값이면 모두 가능하고요, replace 옵션은 중복을 허용할지를 bool 형태로 나타냅니다. 여기서는 중복을 제외할 예정이기 때문에 False로 설정해 줬습니다.print(f'추첨한 숫자는 {random_num1} 입니다.') print(f'중복을 제외하고 추첨한 6개의 숫자는 {random_num2} 입니다.')
추첨한 숫자는 69 입니다. 중복을 제외하고 추첨한 6개의 숫자는 [30 95 97 33 54 56] 입니다.
이번에는 파이썬을 이용해서 단일 숫자, 또는 여러 숫자를 추첨하는 방법을 알아보았습니다. 척 보면 아시겠지만,
numpy.random.choice
가random.randint
의 기능을 포함해 강력한 기능을 제공하기 때문에 두 방법을 모두 외우기 어렴다면 넘파이를 이용하는 방법을 숙지해 두시는 것을 추천드립니다.반응형'Python > 파이썬 기초' 카테고리의 다른 글
[Python] 함수 가변인자 *args, **kwargs 사용법 알아보기 (0) 2023.08.22 [datetime] 파이썬 datetime 패키지를 이용해 날짜 형식 변환 또는 추출하기 (0) 2023.05.23 [datetime, dateutil] 파이썬 날짜 차이 계산을 하는 몇 가지 방법 (0) 2023.05.09