2012-05-28 7 views
0

Я следующий питон 2.7.3 кода, который я вношу в codechef онлайн конкурса программирования:Почему не вход() ведет себя правильно?

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

В чем исключение? – geoffspear

+0

Сайт не говорит мне, что, хотя он исправляется при использовании raw_input. –

+0

Какая версия Python - это конкурс? – Levon

ответ

2

Скорее всего, сайт, на который вы отправляете код, отключает команду input. Иногда это делается как часть «песочницы», чтобы вы не запускали на своем компьютере произвольный код. Например, они не захотят запускать сценарий, который удаляет все файлы на своем диске.

Команда input более или менее эквивалентна запуску eval(raw_input()) и eval может использоваться как угодно.

Вы говорите, что получаете исключение. Точно, какое исключение и какое сообщение об исключении?

+0

Я получаю ошибку времени выполнения NZEC, и на их сайте объясняется следующее: ** Почему я получаю NZEC? NZEC обозначает код выхода без кода. Для пользователей C это будет сгенерировано, если ваш основной метод не имеет возврата 0; заявление. Другие языки, такие как Java/C++, могут генерировать эту ошибку, если они генерируют исключение. ** –

+0

Итак, вы видите, что это говорит о других языках, из-за исключения, но не указывает сообщение об исключении. –

+0

Попробуйте представить одну из следующих функций в качестве вашей полной программы и посмотрите, есть ли у вас подобная ошибка: 'eval (« 1 + 2 »)' или просто 'input()'; альтернативно, если он позволяет увидеть вывод консоли (stout), а затем обернуть все в 'try' ...' except', который улавливает и печатает исключение. –

Смежные вопросы