[Freeschool] [JT] Re: чему стоит учить в школе
Dmitriy M. Maslennikov
=?iso-8859-1?q?maslennikovdm_=CE=C1_gmail=2Ecom?=
Чт Окт 23 16:39:55 MSD 2008
23 октября 2008 г. 16:15 пользователь Denis Kirienko <dk на altlinux.ru> написал:
>> #!/usr/bin/python
>> #-*- coding: utf-8 -*-
>> import os
>> import sys
>> print "Первый: "+sys.argv[0]
>> print "Второй: "+sys.argv[1]
>> print "Третий: "+sys.argv[2]
>>
>> сделать исполняемым запускать с параметрами через пробел
>
> В системах автоматического тестирования входные данные подаются программе из
> файла или из стандартного ввода, а не из параметров командной строки. Мне
> нужен потоковый ввод из файла или из stdin.
>
> Не годится ваш совет.
А так:
import sys
for i in sys.stdin.read().split():
print int(i)
Это если влоб. Если ввод большой, то можно так:
import sys
class StreamReader:
def __init__(self, file=None):
self.__file = file or sys.stdin
self.__list = []
def __readline(self):
while len(self.__list) == 0:
line = self.__file.readline()
if line == '': return
self.__list = [int(i) for i in line.split()]
def iter(self):
while True:
if len(self.__list) == 0:
self.__readline()
if len(self.__list) > 0:
yield self.__list.pop(0)
else:
break
for i in StreamReader().iter():
print i, type(i)
Конечно, не самый простой путь) С++ наглядней будет.
--
Dmitriy M. Maslennikov
rlz на etersoft.ru
rlz на altlinux.org
maslennikovdm на gmail.com
master на armory.ru
Подробная информация о списке рассылки Freeschool