반응형

프로그래밍/파이썬

반응형
반응형

이번 문제는 [11718번 - 그대로 출력하기]이다.

 

처음에는 이렇게 풀었다.

 

input으로 string 값을 입력 받아 split으로 나눠주게 되면 list형식으로 잘리게 된다.

이 점을 주의하자.

 

예를 들어서 hi nice to라고 입력을 하고 split(" ")으로 문자 사이 공백으로 문자열을 잘랐다고 생각해보자.

그리고 나서 위의 값을 출력하게 되면 => ['hi', 'nice', 'to']라고 값이 반환된다.

 

그렇기 때문에 나는 문자들을 빼내기 위하여 중간을 ', '으로 잘라서 문자들을 빼내왔다.

그리고 처음 두 글자와 맨 마지막 글자는 무조건 ['와, ']이기 때문에 3번째 글자부터 마지막 세 번째 글자까지 출력하게 하였다.

 

그리고 입력이 끝나게 되면 break를 통해서 무한 반복을 탈출하는 식으로 하였다.

 

그러나

후.. 마음을 가라앉히고 다시 생각해본다.

 

사실 이 문제는 여러 줄이 한 번에 입력을 받을 수도 있기 때문에 위와 같이 하면 안된다.

 

위 코드는 한 줄만 입력이 받을 수 있기 때문에(한 줄을 입력 받고 enter를 누르면 바로 EOFerror가 나오기 때문에) 다른 코드로 해야 한다. 사실 어떻게 해야 하는지 모르겠어서 구글에 물어봤다.

 

그랬더니 많은 고수님들이 try, except 구문을 사용하는 것을 알 수 있었다.

 

여기서 try, except가 무엇인가?

try:

   실행할 코드

except 예외이름:

   예외가 발생했을 때 실행할 코드

이렇게 된다.

 

그래서 나는 아래와 같이 코드를 작성하였다.

정답 코드

while True 문을 통하여 무한 반복을 하되 EOFError가 나게 되면 while 문을 탈출하여 끝이 나게 하는 코드다.

 

EOFerror는 무엇인가?

ctrl+c를 누르면 파일의 실행을 종료하고는 했었는데 ctrl+d에 상응하는 내용은 파일의 끝이라는 것이다.

참고로 ctrl+c는 KeyboardInterrupt 에러라고 하니 알아두자.

 

 

반응형

+ Recent posts