파이썬 무작위 모듈 활용법

1. 무작위 실수 생성

random() 함수는 0 이상 1 미만의 범위에서 무작위 실수를 반환합니다. 이 함수는 0은 포함하지만 1은 포함하지 않습니다.

import random
print(random.random())  # 0.0 이상 1.0 미만의 값
print(random.random())  # 예시 출력: 0.7428319382910234
print(random.random())  # 예시 출력: 0.1920384729183746
print(random.random())  # 예시 출력: 0.0

2. 지정된 범위 내 무작위 실수

uniform(a, b) 함수는 a 이상 b 미만의 범위에서 무작위 실수를 생성합니다.

import random
print(random.uniform(5, 9))  # 5.0 이상 9.0 미만의 값
print(random.uniform(5, 9))  # 예시 출력: 7.293847192837465
print(random.uniform(5, 9))  # 예시 출력: 5.0

3. 지정된 범위 내 무작위 정수

randint(a, b) 함수는 a 이상 b 이하의 범위에서 무작위 정수를 생성합니다.

import random
print(random.randint(3, 8))  # 3 이상 8 이하의 정수
print(random.randint(3, 8))  # 예시 출력: 6
print(random.randint(3, 8))  # 예시 출력: 3

4. 시퀀스에서 무작요소 선택

choice(seq) 함수는 리스트, 튜플, 문자열과 같은 시퀀스에서 무작위로 하나의 요소를 선택합니다.

import random
data = [10, 20, 30, 40, 50]
print(random.choice(data))  # 리스트에서 무작위로 하나 선택
# 예시 출력: 30

5. 시퀀스에서 여러 요소 무작위 선택

sample(seq, k) 함수는 시퀀스에서 k개의 무작위 요소를 선택하여 리스트로 반환합니다.

import random
data = [10, 20, 30, 40, 50]
print(random.sample(data, 3))  # 3개 요소 무작위 선택
# 예시 출력: [40, 20, 10]

6. 실습 예제

예제 1: 무작위 인증코드 생성

ASCII 코드를 활용하여 무작위 인증코드를 생성하는 방법입니다.

import random

def generate_upper():
    return chr(random.randint(65, 90))  # 대문자 A-Z

def generate_lower():
    return chr(random.randint(97, 122))  # 소문자 a-z

def generate_digit():
    return str(random.randint(0, 9))  # 숫자 0-9

def create_verification_code(length=4):
    code_chars = []
    for _ in range(length):
        char_type = random.randint(1, 3)
        if char_type == 1:
            code_chars.append(generate_upper())
        elif char_type == 2:
            code_chars.append(generate_lower())
        else:
            code_chars.append(generate_digit())
    return ''.join(code_chars)

verification_code = create_verification_code()
print(f"생성된 인증코드: {verification_code}")

string 모듈을 활용한 더 간결한 방법:

import random
import string

def generate_upper():
    return random.choice(string.ascii_uppercase)

def generate_lower():
    return random.choice(string.ascii_lowercase)

def generate_digit():
    return random.choice(string.digits)

예제 2: 추첨 프로그램

회사 연말 행사에서 사용할 추첨 프로그램입니다. 각 상품은 한 번만 당첨될 수 있습니다.

import random
import time

participants = ['김민준', '이서아', '박도윤', '최하은', '정지우', '윤시우', '강서윤', '한지우']

def draw_lottery(participant_list, prize_name, winners, wait_seconds=3):
    print(f"\n{prize_name} 추첨을 시작합니다. 엔터 키를 누르세요.")
    input()
    
    selected = random.sample(participant_list, winners)
    print(f"{prize_name} 당첨자: {selected}")
    
    for winner in selected:
        participant_list.remove(winner)
    
    time.sleep(wait_seconds)
    return participant_list

# 3등 추첨 (3명)
participants = draw_lottery(participants, "3등", 3)
# 2등 추첨 (2명)
participants = draw_lottery(participants, "2등", 2)
# 1등 추첨 (1명)
participants = draw_lottery(participants, "1등", 1)

print(f"\n미당첨자 명단: {participants}")

태그: 파이썬 random모듈 무작수생성 인증코드 추첨프로그램

5월 23일 05:25에 게시됨