Ошибка выполнения с кодом Python онлайн, работает в автономном режиме - PullRequest
4 голосов
/ 23 апреля 2019

Код успешно работает в автономном режиме, однако, при загрузке на сайт проверки кода он дает мне RuntimeError.Я не уверен, почему он это делает.

Мой код:

inputinteger = int(input(""))
N = inputinteger

inputinteger2 = int(input(""))
M = inputinteger2

A = int(N / M)

if (N % M == 0):
    B = 0
    print("masing-masing " + str(A))
    print("bersisa " + str(B))

else:
    B = int(N % M);
    print("masing-masing " + str(A))
    print("bersisa " + str(B))

Примечание: «masing-masing» на английском языке означает «каждый».«bersisa» в переводе с английского означает «остаток».

Ввод некоторых тестовых данных 15 и 3 дает ожидаемый результат.Однако код не работает при запуске онлайн.

Спасибо за помощь!

Ответы [ 2 ]

2 голосов
/ 23 апреля 2019

Добавление к ответу выше.

Онлайновый сайт с запросами не предоставляет или может не предоставлять данные, необходимые для запуска кода.Я предлагаю вам просто заменить либо input() или raw_input() фактическими значениями, с которыми может работать система.

1 голос
/ 23 апреля 2019

Я не на 100% уверен в этом, но это лучшая догадка, и в комментариях недостаточно места.

Для python 2 может оказаться, что вы собираетесь использовать raw_input вместоinput в вашем коде.Это сказанное при тестировании кода Python 2, кажется, что многие онлайн-интерпретаторы не работают с input или raw_input в любом случае.См. Здесь: https://www.tutorialspoint.com/execute_python_online.php и здесь: https://paiza.io/en/projects/new?language=python. Если вы введете этот код:

a = raw_input()

Сбой с ошибкой EOF.Я считаю, что это потому, что эти переводчики на самом деле не позволяют вводить.

если вы измените строки inputinteger = int(input("")) и inputinteger2 = int(input("")) на inputinteger = 4 и inputinteger2 = 5, я думаю, вы обнаружите, что больше не получаете ошибку времени выполнения.

Поскольку вы сказали, что английский является вашим вторым языком, если это было трудно понять, то здесь это несколько проще:

Некоторые старые версии Python не используют input.Они используют raw_input.Попробуйте заменить input на raw_input.

Если это не сработает, возможно, онлайн-питон не позволит вам использовать input или raw_input.Попробуйте использовать код без input.

РЕДАКТИРОВАТЬ:

в зависимости от того, как веб-сайт создает впечатление, что вы будете получать ваши данные, я бы попробовал изменить ваш код следующим образом:

inputinteger, inputinteger2 = raw_input("").split(" ")
N=int(inputinteger)
M=int(inputinteger2)

A=int(N/M);

if(N%M==0):
    B=0
    print("masing-masing "+str(A))
    print("bersisa "+str(B))

else:
    B=int(N%M);
    print("masing-masing "+str(A))
    print("bersisa "+str(B))

Если это не сработает, извините, но у меня совершенно нет идей относительно того, почему это может не сработать.Я проверил на примере ввода, который они дали на сайте, и он отлично работает.Мы знаем, что у вас есть правильный ответ, если он что-то значит ..

Редактировать: Дальнейшее объяснение:

Таким образом, веб-сайт сказал, что вы будете получать информацию в следующем формате (в качестве примера):

15 3

Это означает, что вы получили только одну строку.Строка:

inputinteger, inputinteger2 = raw_input("").split(" ")

принимает эту единственную строку и использует .split(" "), чтобы разбить ее на разные значения (хранящиеся в списке) по обе стороны от пустого пространства.По сути, он присваивает

inputinteger, inputinteger2 = ["15", "3"]

, что дает вам соответствующие значения для этих переменных.Оттуда ваш старый код работает отлично.

...