Python에서 임의의 난수 정수 생성 방법
Grace Collins
Solutions Engineer · Leapcell

Key Takeaways
- 일반적인 정수 생성을 위해
random.randint()
를 사용합니다. - 암호학적으로 안전한 난수를 위해
secrets.randbelow()
를 사용합니다. - 빠르고 대규모의 난수 정수 배열을 위해
numpy.random.randint()
를 사용합니다.
난수 정수 생성은 프로그래밍에서 흔한 작업이며, 시뮬레이션, 게임, 암호화 및 테스트와 같은 광범위한 응용 분야에서 유용합니다. Python은 난수 정수를 효율적이고 안전하게 생성할 수 있는 여러 내장 메서드를 제공합니다. 이 기사에서는 가장 일반적으로 사용되는 접근 방식을 살펴봅니다.
random
모듈 사용
Python의 표준 라이브러리에는 의사 난수 생성을 위한 함수 모음을 제공하는 random
모듈이 포함되어 있습니다.
1. random.randint(a, b)
이 함수는 a <= N <= b
를 만족하는 난수 정수 N을 반환합니다.
import random num = random.randint(1, 10) print(num) # 출력은 1에서 10 사이의 정수일 수 있습니다(양 끝점 포함).
참고: 양 끝점이 모두 포함됩니다.
2. random.randrange(start, stop[, step])
randrange()
는 range()
와 유사하지만 범위에서 임의로 선택된 요소를 반환합니다.
num = random.randrange(0, 100, 5) print(num) # 출력은 0, 5, 10, ..., 100 미만일 수 있습니다.
secrets
모듈 사용(보안용)
암호학적으로 안전한 난수 정수(예: 비밀번호, 토큰 또는 인증)가 필요한 경우 Python 표준 라이브러리에도 있는 secrets
모듈(Python 3.6부터)을 사용합니다.
import secrets num = secrets.randbelow(10) # [0, 10) 범위의 정수를 반환합니다. print(num)
이것은 random.randint()
보다 더 안전하지만 약간 느립니다.
대규모 생성을 위해 numpy
사용
데이터 과학 또는 시뮬레이션 작업을 수행하고 많은 난수 정수를 효율적으로 생성해야 하는 경우 numpy
는 빠른 벡터화된 도구를 제공합니다.
import numpy as np arr = np.random.randint(0, 100, size=10) print(arr) # 0과 99 사이의 난수 정수 10개로 구성된 NumPy 배열을 출력합니다.
numpy
는 표준 라이브러리의 일부가 아니므로 별도로 설치해야 합니다(pip install numpy
).
결론
요약하자면:
메서드 | 사용 사례 | 포함 범위 | 안전한가요? |
---|---|---|---|
random.randint(a, b) | 일반적인 사용 | 예 | 아니요 |
random.randrange(a, b) | 범위에서 임의의 요소 | 아니요 (b 제외) | 아니요 |
secrets.randbelow(n) | 안전한 난수 | 아니요 (n 제외) | 예 |
numpy.random.randint() | 효율적인 배열 생성 | 예 | 아니요 |
일상적인 스크립팅, 보안 응용 프로그램 또는 대규모 수치 작업 등 필요에 가장 적합한 메서드를 선택하십시오.
FAQs
randint(a, b)
는 a
와 b
를 모두 포함하는 반면 randrange(a, b)
는 b
를 제외합니다.
비밀번호나 토큰 생성과 같이 보안이 중요할 때 사용하십시오.
예, NumPy는 pip install numpy
를 사용하여 별도로 설치해야 합니다.
저희는 Leapcell이며, Python 프로젝트 호스팅을 위한 최고의 선택입니다.
Leapcell은 웹 호스팅, 비동기 작업 및 Redis를 위한 차세대 서버리스 플랫폼입니다.
다국어 지원
- Node.js, Python, Go 또는 Rust로 개발하십시오.
무제한 프로젝트를 무료로 배포
- 사용량에 대해서만 지불하고 요청이나 요금은 없습니다.
탁월한 비용 효율성
- 유휴 요금 없이 사용한 만큼 지불합니다.
- 예: $25는 평균 응답 시간 60ms에서 694만 건의 요청을 지원합니다.
간소화된 개발자 경험
- 간편한 설정을 위한 직관적인 UI.
- 완전 자동화된 CI/CD 파이프라인 및 GitOps 통합.
- 실행 가능한 통찰력을 위한 실시간 메트릭 및 로깅.
손쉬운 확장성 및 고성능
- 높은 동시성을 쉽게 처리하기 위한 자동 확장.
- 운영 오버헤드가 없으므로 구축에만 집중하십시오.
설명서에서 자세히 알아보십시오!
X에서 팔로우하세요: @LeapcellHQ