2016-04-20 2 views
-1

Моя программа хорошо работает и печатает правильный STDOUT, но для STDERR Я получаю «Пустой выходной поток»Как исправить пустой выход для STDERR?

Может ли кто-нибудь исправить мой код ?, Я застрял здесь.

Входной

285 242 2053 260 310 450 10 682 

Выход

207229 

Мой код

def sum_leaves(K, inputs, count=1):  
    A, B, M, L1, L2, L3, D, R = map(int, inputs) 
    x = (((A*K)+B) % M) 
    y = (((A*K)+2*B) % M) 

    if K < L1 or count == D: 
     my_list.append(K) 
    elif L1 <= K < L2: 
     sum_leaves(x, inputs, count + 1) 
    elif L2 <= K < L3: 
     sum_leaves(y, inputs, count + 1) 
    elif L3 <= K: 
     sum_leaves(x, inputs, count + 1) 
     sum_leaves(y, inputs, count + 1) 
    if count == 1: 
     return sum(my_list) 


def read_input(input_string): 
    inputs = input_string.split() 
    A, B, M, L1, L2, L3, D, R = map(int, inputs) 
    x = (((A*R)+B) % M) 
    y = (((A*R)+2*B) % M) 

    if L1 <= R < L2: 
     return sum_leaves(x, inputs) 
    elif L2 <= R < L3: 
     return sum_leaves(y, inputs) 
    elif L3 <= R: 
     sum_leaves(x, inputs) 
     return sum_leaves(y, inputs) 

my_list = [] 
if __name__ == '__main__': 
    print(read_input(input())) 
+1

Почему вы ожидаете выхода 'stderr'? Ваша программа не печатает на 'stderr'. «Пустой поток вывода», вероятно, исходит из того, что вы используете для запуска этого скрипта, сам скрипт не заботится о том, является ли 'stderr'« пустым »или нет. – ShadowRanger

+0

Я довольно новичок в python, но я не вижу никакого кода, который пытается печатать на STDERR, так почему вы ожидаете вывода на STDERR? –

+0

Я загружаю свой код в автоматическую оценку, и он проверяет stdout и stderr – Joe

ответ

1

Вы не посылать ничего stderr. print() отправляет stdout. Используйте print("error", file=sys.stderr) для отправки в stderr.

+0

Предполагая, что это Python 3 в любом случае. Теги не указываются, и здесь нет уникального синтаксиса Py3 (парсеры вокруг одного аргумента 'print'" будут работать одинаково в Py2 и Py3, они просто лишние в Py2). – ShadowRanger

+0

как я могу узнать, где ошибка в моем коде? – Joe

+0

Я загружаю свой код в автоматическую оценку и проверяю его на stdout и stderr – Joe

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