본문 바로가기
프로그램

[파이썬] 문제 : 100 이하 양의 정수 중 5의 배수, 10의 배수 리스트

by 오디세이99 2022. 11. 28.
728x90
반응형

(문제)

아래 조건을 만족하는 프로그램을 예외처리 방식을 적용한 무한반복문으로 작성 해야합니다

----    아    래   ----

1) 100 이하의 양의 정수 중에 5의 배수이지만 10의 배수가 아닌 수의 리스트 L을 만든다.

2) 정수 입력을 받아 리스트 L의 인덱스로 사용하여 입력된 정수값이 인덱스 범위 안이면 요소값을 출력하고,

     인덱스 범위를 벗어나면 메시지 '사용 인덱스 범위를 넘어섰습니다.' 를 출력한다.

     이 떄 입력된 정수값이 1이면 첫번째 요소를 출력하며, 인덱스 오류는 예외처리를 사용한다.

3) 정수 입력과 요소값 출력은 무한반복하고, ctrl-c 키 입력이 되면  예외처리를 사용하여 프로그램에서 빠져나오도록 한다.

 

 

(방법)

L = []                  # 5의 배수 저장용 리스트
n = 1                   # 100 보다 작은 수를 count 하기 위한 변수
while True:            # 무한 반복
    if n%5 == 0 and n%10 != 0:        # 5로 나누어 나머지가 0 이면 5의 배수. 10으로 나누어 나머지가 0이 아니면
        L.append(n)      # 5의 배수이고 10의 배수가 아닌 수면 L 에 추가
    n += 1               # n을 1씩 증가
    if n > 100:          # n이 100 보타 크면 breka토 while 무한루프 빠져나감
        break

while True:                    # 입력 무한루프
    try:                        # 예외처리
        idx = int(input())      # 입력 받고, 정수로 변환
        idx -= 1                # 1 입력시 L 라스트의 첫번째 요소 출력이기 떼문에 -1을 함
        print(L[idx])           # 출력
    except KeyboardInterrupt:  # ctrl-c 입력시 예외 발생. break로 무한루프 빠져나감
        break
    except:                    # 인덱스 범위 벗아나는 예외 발생시 출력
        print("사용 인덱스 범위를 넘어섰습니다.")

728x90
반응형

댓글