본문 바로가기
코딩 연습/코딩배우기

[python] 주어진 6개의 숫자 맞추기(로또번호 맞추기)

by good4me 2020. 8. 24.

goodthings4me.tistory.com

 

■ 숫자 1 ~ 45 사이의 6개의 번호가 랜덤하게 추출되어 있는 상태에서 숫자(로또번호)를 1개씩 입력하면 맞춘 번호를 알려준다.

총 6번의 입력 기회가 주어지며, 맞춘 번호는 제외하고 남은 번호로 계속 게임을 진행한다.

import random

def number_serach():
    seq_num = random.sample(range(1, 46), 6)
    lotto_num = list(seq_num)
    right_num = []
    
    cnt = 0
    while True:
        if cnt == 6: break
        if len(right_num) > 0 :
            print(f'\n맞춘 번호 : {right_num}')

        search = input(f'\n{cnt+1}번째 숫자(로또 번호 1개)를 입력하세요> ')
        if search == 'q': break
        elif search.isdecimal() and int(search) < 46: # 문자로 된 숫자인지 여부 체크
            search_num = int(search)
        else:
            print('\n숫자(1 ~ 45)를 입력하세요!!')
            continue
        
        if search_num in lotto_num:
            print('입력한 숫자 {} 이(가) {}개의 숫자 중에 {}번째에 있습니다.'.format(search_num,\
            len(lotto_num), lotto_num.index(search_num) + 1))
            right_num.append(search_num)
            lotto_num.remove(search_num)
        else:
            print(f'입력한 숫자 {search_num} 이(가) {len(lotto_num)}개의 숫자 중에 없습니다.')
    
        cnt += 1

    if cnt == 0:
        print('프로그램을 종료합니다.')
    else:
        print(f'\n\n6개의 숫자 {seq_num} 중,')
        print(f'{lotto_num}은 못 맞췄습니다.')


number_serach()

good4me.co.kr

 

[실행 결과]

1번째 숫자(로또 번호 1개)를 입력하세요> 34
입력한 숫자 34 이(가) 6개의 숫자 중에 없습니다.

2번째 숫자(로또 번호 1개)를 입력하세요> 20
입력한 숫자 20 이(가) 6개의 숫자 중에 5번째에 있습니다.

맞춘 번호 : [20]

3번째 숫자(로또 번호 1개)를 입력하세요> 12
입력한 숫자 12 이(가) 5개의 숫자 중에 없습니다.

맞춘 번호 : [20]

4번째 숫자(로또 번호 1개)를 입력하세요> 29
입력한 숫자 29 이(가) 5개의 숫자 중에 3번째에 있습니다.

맞춘 번호 : [20, 29]

5번째 숫자(로또 번호 1개)를 입력하세요> 19
입력한 숫자 19 이(가) 4개의 숫자 중에 없습니다.
맞춘 번호 : [20, 29]

6번째 숫자(로또 번호 1개)를 입력하세요> 45
입력한 숫자 45 이(가) 4개의 숫자 중에 없습니다.


6개의 숫자 [39, 28, 29, 7, 20, 8] 중,
[39, 28, 7, 8]은 못 맞췄습니다.

 

댓글