프로그래밍/Python

[python] 난수 10자리에서 영문 숫자 분포가 골고루 들어갈수있게

홍반장水_ 2024. 10. 21. 14:04
반응형

[python] 난수 10자리에서 영문 숫자 분포가 골고루 들어갈수있게

 

import random
import string

def generate_balanced_random_string(length=10):
    # 원하는 비율로 대문자, 소문자, 숫자 개수 설정
    num_uppercase = 4  # 대문자 4개
    num_lowercase = 3  # 소문자 3개
    num_digits = 3     # 숫자 3개

    # 각 문자 유형에서 원하는 만큼 선택
    uppercase_letters = random.choices(string.ascii_uppercase, k=num_uppercase)
    lowercase_letters = random.choices(string.ascii_lowercase, k=num_lowercase)
    digits = random.choices(string.digits, k=num_digits)

    # 모든 문자들을 합쳐서 무작위로 섞음
    random_string = uppercase_letters + lowercase_letters + digits
    random.shuffle(random_string)

    # 리스트를 문자열로 변환하여 반환
    return ''.join(random_string)

# 함수 호출
random_string = generate_balanced_random_string()
print(f"균형 잡힌 10자리 난수: {random_string}")
반응형