Форум сайта python.su
							
  0  
								
								из разъяснений:
http://www.olympiads.ru/zaoch/2010/lang.shtml
В скриптовых языках perl, php, python, ruby отсутствует возможность потокового ввода данных, свойственного для языков Pascal, C и C++, то есть в этих языках нельзя простыми методами считать из входного файла последовательность целых чисел (действительных чисел, строк и т.д.), если неизвестно, находятся ли эти числа в одной строке или в разных строках.
Для ввода данных в этих языках предлагается считывать содержимое всего файла сразу в строковую переменную, а затем использовать стандартную функцию split для разбивки этой переменной на поля. Функция split игнорирует все начальные и конечные пробельные символы (то есть пробелы, символы табуляции и символы новой строки), а все прочие символы разбиваются на последовательности, состоящие из непробельных символов, пробельные символы являются разделителями для полученных последовательностей. В результате получается список, состоящий из строк непробельных символов, содержащихся в исходном файле. Например, если в исходном файле записана строка “1 2 abc” (количество пробелов неважно), то в полученном списке будет три элемента - “1”, “2” и “abc”.
В языке php имеется небольшое отличие - функция называется preg_split, при ее вызове в качестве аргумента необходимо явно указать регулярное выражение, которое задает разделитель полей (это /\s+/, в языках perl, python и ruby такое значение разделителя используется по умолчанию), и перед вызовом функции preg_split необходимо явно удалить начальные и концевые пробелы из строки функцией trim (в языках perl, python и ruby это делает сама функция split).
Можно пользоваться и другими способами ввода-вывода данных, поддерживаемых данными языками.
#!/usr/bin/python
# Объявляем файлы FIN и FOUT для ввода-вывода данных
FIN = open("sum.in", "r")
FOUT = open("sum.out", "w")
# Считываем весь файл при помощи метода read(),
# результат разбиваем на поля по пробельным символам методом split()
# и записываем в список InputData
InputData = FIN.read().split()
# Теперь в элементах списка InputData[0] и InputData[1]
# записаны два входных числа в виде строк.
# Преобразуем их к типу int и запишем их сумму в переменную Answer
Answer = int(InputData[0]) + int(InputData[1])
# Выведем результат в файл
print >> FOUT, Answer
# Закроем файлы FIN и FOUT
FIN.close()
FOUT.close()
Офлайн
							
  0  
								
								Ну а почему нет? ) В принципе для системы сайта codeforces.ru python проблемой не был))
Офлайн
							
  0  
								
								в этих языках нельзя простыми методами считать из входного файла последовательность целых чисел (действительных чисел, строк и т.д.), если неизвестно, находятся ли эти числа в одной строке или в разных строках.т.е. по любому читать весь файл?
В первой строке входного файла целое число n (2 =< n =< 100) — число планет. Далее следуют>>http://neerc.ifmo.ru/school/io/archive/20101009/problems-basic-20101009.pdf
n строк, по четыре целых числа x, y, s и p в каждой. Числа x и y (jxj, jyj < 20) — координаты
соответствующей планеты, s (0 =< s =< 10) — скорость производства кораблей, p (0 =< p =< 100) —
количество кораблей на планете в начале игры. В следующей строке следуют два целых числа —
номера планет первого и второго игроков. Планеты нумеруются с единицы в порядке появления во
входном файле. Гарантируется, что координаты всех планет различны.
Отредактировано (Окт. 13, 2010 08:01:07)
Офлайн
							
  186  
								
								>Для ввода данных в этих языках предлагается считывать содержимое всего файла сразу в строковую переменную, а затем использовать стандартную функцию split для разбивки этой переменной на поля.
Составитель памятки выпей яду! Тебе не место в этом мире если ты не освоил метод readline().
Офлайн