2012-05-28 3 views
0

나는했습니다 내가 온라인 프로그래밍 대회를 codechef을 제출하고 다음 파이썬 2.7.3 코드 :input()이 올바르게 작동하지 않는 이유는 무엇입니까?

case = input() 
for i in xrange(0, case): 
    try: 
     l = [elem for elem in raw_input().split()] 
     res = int(l[0][::-1]) + int(l[1][::-1]) 
     print int(str(res)[::-1]) 
    except: 
     break 

이, 내 컴퓨터에서 작동 내가 입력 리디렉션을 사용하고 때에도 in.txt 파일을 사용하여 입력을 위해 여전히 작동합니다. 나는이 사건의 값을 얻기 위해 raw_input을 사용하는 경우

하지만 난이 평가를 위해 제출하는 경우 문제는, 내가 예외가 그 예외가 제거됩니다

case = int(raw_input()) 

다음과 같이 내 in.txt 파일은 다음과 같습니다

1 
23 45 

내 문제는 그것을 무엇인지, 완벽하게 내 컴퓨터에서 작업이다 그 예외가 제기되고있는 1 라인에서 공급하는 온라인 콘테스트 사이트, 그리고 내가 raw_input을 사용하는 경우가 정류됩니다 촉진.

제 1 행이 항상 정수일 때 input()도 작동하지 않아야합니까?

+1

예외는 무엇입니까? – geoffspear

+0

사이트에서 raw_input을 사용하여 수정되었지만 그 내용이 표시되지 않습니다. –

+0

대회에서 사용하는 Python의 버전은 무엇입니까? – Levon

답변

2

코드를 제출하려는 사이트가 input 명령을 사용 중지 할 가능성이 큽니다. 이것은 때로 "sandboxing"의 일부로 수행되어 사용자가 자신의 시스템에서 임의의 코드를 실행하지 못하게합니다. 예를 들어, 사용자는 디스크의 모든 파일을 삭제하는 스크립트를 실행할 수 없습니다.

input 명령은 eval(raw_input())을 실행하는 것과 동일하거나 eval을 사용하여 거의 모든 작업을 수행 할 수 있습니다.

예외가 발생한다고 말합니다. 정확히 어떤 종류의 예외입니까? 예외 메시지는 무엇입니까?

+0

NZEC 런타임 오류가 발생하며 사이트에서 다음과 같이 설명됩니다. ** 왜 NZEC을 얻습니까? NZEC은 0이 아닌 종료 코드를 나타냅니다. C 사용자의 경우 main 메소드에 return 0이없는 경우이 값이 생성됩니다. 성명서. Java/C++과 같은 다른 언어가 예외를 throw하면이 오류가 발생할 수 있습니다. ** –

+0

다른 언어에서는 예외로 인해 표시되지만 예외 메시지는 표시하지 않습니다. –

+0

완전한 프로그램으로 다음 중 하나를 제출해보고 비슷한 오류가 있는지 확인하십시오 :'eval ("1 + 2")'또는 단지'input()'; 또는 콘솔 출력 (뚱뚱한)을 볼 수있게한다면 예외를 잡아서 출력하는'try' ...'except'에서 모든 것을 감싸 주면됩니다. –

관련 문제