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()
[실행 결과]
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]은 못 맞췄습니다.
'코딩 연습 > 코딩배우기' 카테고리의 다른 글
[python] map과 filter 대신 리스트 컴프리헨션 사용하기 (0) | 2020.08.26 |
---|---|
[python] 피보나치(Fibonacci) (0) | 2020.08.25 |
[python] 입력받은 숫자 리스트에서 최대값과 그 위치(index) 찾기 (0) | 2020.08.24 |
[python] 주사위 게임 (0) | 2020.08.23 |
[python] 패킹(packing), 언패킹(unpacking) 그리고 가변인자 (0) | 2020.08.23 |
댓글