일상 코딩
[python] 로또 (lotto) 출력 함수 작성 및 로또 게임 일반화 함수 작성, 중복 숫자 제한 코드 본문
Python/로또 (lotto)
[python] 로또 (lotto) 출력 함수 작성 및 로또 게임 일반화 함수 작성, 중복 숫자 제한 코드
polarcompass 2022. 11. 22. 18:32728x90
1 ~ 45 까지 6 가지 숫자 선정하는 방식
def lotto():
select_number = 6
lotto_number = [ i for i in range(1,46) ]
random.shuffle(lotto_number)
start = random.randrange(0,39)
end = start + select_number
return sorted(lotto_number[start:end])
if __name__ == "__main__":
for i in range(10):
lotto_str = ''
lotto_nums = lotto()
for j in lotto_nums: lotto_str += f"{j:2d}, "
print(f"{i+1:02d}회 로또 번호: {lotto_str[:-2]}")
'''
<결과값 예시>
01회 로또 번호: 16, 19, 23, 25, 36, 41
02회 로또 번호: 4, 12, 14, 21, 26, 40
03회 로또 번호: 10, 13, 27, 31, 35, 38
04회 로또 번호: 15, 19, 28, 29, 33, 43
05회 로또 번호: 8, 15, 26, 27, 36, 38
06회 로또 번호: 5, 16, 33, 37, 42, 45
07회 로또 번호: 1, 6, 23, 33, 35, 36
08회 로또 번호: 4, 9, 13, 23, 28, 35
09회 로또 번호: 3, 4, 7, 19, 32, 44
10회 로또 번호: 3, 7, 21, 27, 28, 34
'''
임의의 숫자 범위 및 임의의 가지 수로 선정하는 방식
def lotto(start_num, end_num, select_num):
lotto_number = [ i for i in range(start_num, end_num + 1) ]
random.shuffle(lotto_number) # 값을 반환하지 않고 lotto_number 리스트에 그대로 적용해버림
start = random.randrange(0,( (end_num - start_num + 1) - 1 ) - select_num )
end = start + select_num
return sorted(lotto_number[start:end])
if __name__ == "__main__":
for i in range(10):
lotto_str = ''
lotto_nums = lotto(1,53,7)
for j in lotto_nums: lotto_str += f"{j:2d}, "
print(f"{i+1:02d}회 로또 번호: {lotto_str[:-2]}")
# 02d -> 2자리 10진수이고 1~9까지는 앞을 0으로 채우라는 의미
'''
<결과값 예시>
01회 로또 번호: 1, 16, 18, 31, 33, 46, 53
02회 로또 번호: 2, 9, 11, 17, 38, 46, 52
03회 로또 번호: 10, 16, 21, 22, 24, 35, 44
04회 로또 번호: 1, 10, 11, 20, 45, 52, 53
05회 로또 번호: 4, 18, 29, 35, 36, 39, 42
06회 로또 번호: 10, 22, 35, 37, 41, 42, 44
07회 로또 번호: 2, 4, 10, 13, 17, 46, 52
08회 로또 번호: 1, 11, 23, 30, 34, 50, 52
09회 로또 번호: 9, 14, 16, 18, 38, 42, 53
10회 로또 번호: 3, 8, 15, 34, 39, 40, 45
'''
728x90
'Python > 로또 (lotto)' 카테고리의 다른 글
[python] 메가밀리언 복권 숫자 출력 함수 mega million lotto (0) | 2023.01.29 |
---|