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



