[Freeschool] [JT] Re: чему стоит учить в школе
Denis Kirienko
=?iso-8859-1?q?dk_=CE=C1_altlinux=2Eru?=
Чт Окт 23 16:57:07 MSD 2008
Dmitriy M. Maslennikov пишет:
> А так:
>
> import sys
>
> for i in sys.stdin.read().split():
> print int(i)
О, это уже выход. Я же писал - что у Питона есть своя логика и свои
методы, мне, человеку, испорченному C++, очень тяжело доходить до таких
подходов.
> Это если влоб. Если ввод большой, то можно так:
Да, ввод реально бывает очень большой, до мегабайта.
> 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)
Ужас, как это школьник должен запомнить?
> Конечно, не самый простой путь) С++ наглядней будет.
Да, хочется именно аналога функций C++ и Паскаля. В принципе, у нас есть
модуль, который реализует такую функциональность, получается вроде:
a=fin.readInt()
s=fin.readString()
Легко и удобно. Но модуль-то самописный, нестандартный...
--
Денис
Подробная информация о списке рассылки Freeschool