# 로또 번호 생성기
- 1~45 사이 난수 7개 생성(로또 당첨 번호 6개 + 보너스 번호 1개)
- 중복되는 번호가 없어야 함
- 오름차순으로 정렬
# 방법 1
import numpy as np
# Initialize an empty list for lotto numbers.
lotto = []
# Generate 6 unique lotto numbers between 1 and 45.
for i in range(6):
# Generate a random number and ensure it's not a duplicate.
num = np.random.randint(1, 46)
while num in lotto:
num = np.random.randint(1, 46)
lotto.append(num)
# Sort the generated lotto numbers.
lotto.sort()
# Initialize an empty list for the bonus number.
bonus = []
# Generate a unique bonus number not present in the lotto numbers.
bonus_num = np.random.randint(1, 46)
while bonus_num in lotto:
bonus_num = np.random.randint(1, 46)
bonus.append(bonus_num)
# Display the generated lotto numbers and bonus.
print(f'로또 당첨 번호: {lotto} + 보너스 번호: {bonus}')
# 로또 당첨 번호: [6, 8, 10, 14, 17, 44] + 보너스 번호: [23]
# 방법 2
def lotto(n):
# Initialize an empty list for lotto numbers.
numbers = []
while len(numbers) < n:
# Generate a random number between 1 and 45.
num = np.random.randint(1, 46)
# Check if the generated number is not in the list to avoid duplicates.
if num not in numbers:
numbers.append(num)
numbers.sort()
return numbers
def bonus(n):
# Initialize an empty list for the bonus number.
bonus_number = []
while len(bonus_number) < n:
# Generate a random number between 1 and 45.
num = np.random.randint(1, 46)
# Check if the generated bonus number is not in the list to avoid duplicates.
if num not in bonus_number:
bonus_number.append(num)
bonus_number.sort()
return bonus_number
# Display the generated lotto numbers and bonus.
print(f'로또 당첨 번호: {lotto(6)} + 보너스 번호: {bonus(1)}')
# 로또 당첨 번호: [26, 32, 35, 36, 37, 42] + 보너스 번호: [29]
# 방법 3
# Generate a 1-dimensional NumPy array with random integers from 1 to 45 for lotto numbers
lotto = np.random.randint(1, 46, size=(6,))
# Generate a random integer from 1 to 45 for the bonus number
bonus = np.random.randint(1, 46)
# Ensure unique lotto numbers are generated; loop until unique numbers are obtained
while np.unique(lotto).size != len(lotto):
num = np.random.randint(1, 46)
lotto = np.append(lotto, num)
# Sort the generated lotto numbers
lotto = np.sort(lotto)
# Ensure the bonus number is not in the lotto numbers; loop until a unique bonus number is obtained
while bonus in lotto:
bonus = np.random.randint(1, 46)
# Display the generated lotto numbers and bonus.
print(f'로또 당첨 번호: {lotto} + 보너스 번호: {bonus}')
# 로또 당첨 번호: [ 2 6 20 25 29 40] + 보너스 번호: 32
728x90
'Python' 카테고리의 다른 글
[NumPy] 배열의 인덱싱과 슬라이싱 (0) | 2024.01.17 |
---|---|
[NumPy] 배열의 연산 (0) | 2024.01.17 |
[NumPy] 배열 생성 (0) | 2024.01.17 |
[Python] 가상 환경 사용하기 (2) | 2024.01.16 |
[Python] 클래스 상속 (0) | 2024.01.12 |