Code: Alles auswählen
s = stream.read(1)
while s != "":
# mache etwas mit s
s = stream.read(1)
Code: Alles auswählen
while ((c=getchar()) != EOF)
;
Code: Alles auswählen
s = stream.read(1)
while s != "":
# mache etwas mit s
s = stream.read(1)
Code: Alles auswählen
while ((c=getchar()) != EOF)
;
Code: Alles auswählen
for s in iter(lambda: stream.read(1), ''):
# Mache etwas mit `s`.
Code: Alles auswählen
class CharacterStream(object):
def __init__(self, file_obj):
self.file_obj = file_obj
self.pushed = None
def __iter__(self):
return self
def next(self):
if self.pushed is None:
result = self.file_obj.read(1)
else:
result = self.pushed
self.pushed = None
if result:
return result
else:
raise StopIteration()
def push_back(self, character):
if self.pushed is not None:
# TODO: Bessere Ausnahme und besserer Text. :-)
raise Exception("Is' zu voll hier...")
self.pushed = character
Code: Alles auswählen
class WordStream(CharacterStream):
def __init__(self, file_obj, letters=string.letters+string.digits):
self.letters = letters
CharacterStream.__init__(self, file_obj)
def next(self):
word = c = CharacterStream.next(self)
while c in self.letters:
c = CharacterStream.next(self)
if c in self.letters:
word = word + c
else:
CharacterStream.push_back(self, c)
break
return word
Code: Alles auswählen
__ans=None
def call(f, *args):
global __ans
__ans = f(*args)
return __ans
def ans():
global __ans
return __ans
# mit iter() über sys.stdin.read könnte ich hier kein "or" anbringen:
while call(sys.stdin.read, 1) != '\n' or ans() != '\r':
# mache etwas mit ans()
Code: Alles auswählen
characters = iter(lambda: sys.stdin.read(1), '')
for character in takewhile(lambda c: c not in '\n\r', characters):
print character
Code: Alles auswählen
while True:
s = stream.read(1)
if s == "": break
# mache etwas mit s
Code: Alles auswählen
for s in iter(lambda: stream.read(1), ''):
# Tue etwas mit `s`.