Почему этот код Python вызывает ошибку времени выполнения в ideone?
import sys
def func():
T = int(next(sys.stdin))
for i in range(0,T):
N = int(next(sys.stdin))
print (N)
func()
Здесь я беру ввод T для цикла и итерации по T, это дает Runtime error time: 0.1 memory: 10088 signal:-1
снова, снова. Я пытался использовать sys.stdin.readline()
это также дает ту же ошибку.
1 ответ
Я посмотрел ваш код на http://ideone.com/8U5zTQ. сам код выглядит нормально, но ваш ввод не может быть обработан.
Потому что это так:
5 24 2
которая будет строкой:
"5 24 2"
это не почти int, даже если вы пытаетесь разыграть его. Таким образом, вы можете преобразовать его в список с помощью:
inputlist = next(sys.stdin[:-2]).split(" ")
чтобы получить целые числа в списке, который вы помещаете в одну строку. Цикл над этим.
После этого код все еще будет в цикле, потому что он хочет на 2 целых числа больше, но по крайней мере вы получите некоторый результат.
Поскольку я не совсем уверен в том, чего вы пытаетесь достичь, теперь вы можете перебрать этот список и распечатать свои данные:
inputlist = next(sys.stdin[:-2]).split(" ")
for i in inputlist
print(i)
Другое решение было бы, вы просто поместите одно число в строке, это также будет работать
так вместо
5 24 2
вы положили в
5
24
2
Дальнейшие советы
на Ideone у вас также есть отслеживание ошибок в нижней части страницы:
Traceback (most recent call last):
File "./prog.py", line 8, in <module>
File "./prog.py", line 3, in func
ValueError: invalid literal for int() with base 10: '1 5 24 2\n'
который показал вам, что он не может обработать ваш ввод