Zum Inhalt
Hilbert Python
Aus ProgrammingWiki
<
BuK
<
IIm20
<
Vorlesung 2 Grüning
Archivierte Version vom 2021-04-10T11:20:49+00:00.
Aktuelle Version
class stream: def make_stream(self): n = False while True: yield n #n += 1 def __init__(self): self.li = [] self.stream = self.make_stream() def anext(self): item = next(self.stream) self.li.append(item) return item def next_until(self, n): if n < len(self.li): return self.li[n] else: item = None while n >= len(self.li): item = self.anext() return item def get(self, n): if n >= len(self.li): return self.next_until(n) else: return self.li[n] def get_finite(self): return self.li def einzelbuchung(self, n, value, error = True): self.get(n) if self.li[n] == False: self.li[n] = value return 0 else: if error: print(f"Error in einzelbuchung: Zimmer {n} ist belegt! Hier wohnt {self.li[n - 1]}") return -1 def zeig_mir(self, n): self.get(n) return self.get_finite()[0:n] def kleingruppenbuchung(self, finite_bus): for i, value in enumerate(finite_bus): pos = i while self.einzelbuchung(pos, value, False) == -1: pos += 1 def check_in(self, infinite_bus): pass
hilberthotel = stream() print(hilberthotel.zeig_mir(11)) hilberthotel.einzelbuchung(3, "Otto Grundmann") print(hilberthotel.zeig_mir(12)) hilberthotel.einzelbuchung(2, "Hella Milkel") hilberthotel.einzelbuchung(3, "Heribert Wuischke") hilberthotel.einzelbuchung(7, "Heribert Wuischke") print(hilberthotel.zeig_mir(12)) print()
ausführen
class finite_bus: def __init__(self, id, places): self.id = id self.places = places def zeig_mir(self): return [tuple((self.id, i)) for i in range(self.places + 1)]
kleinbus815 = finite_bus(815, 8) print(kleinbus815.zeig_mir()) hilberthotel.kleingruppenbuchung(kleinbus815.zeig_mir()) hilberthotel.zeig_mir(12)
ausführen
class infinite_bus: def __init__(self, id): self.id = id self.stream = self.make_stream() def make_stream(self): n = 0 t = tuple((self.id, n)) while True: yield t n += 1 t = tuple((self.id, n)) def zeig_mir(self, n): result = [] try: for i in range(n + 1): result.append(next(self.stream)) except StopIteration: pass return result
bus3813 = infinite_bus(3813) bus3813.zeig_mir(8)
ausführen
Seite
Quelltext
Versionen/Autoren
Konto registrieren
Anmelden
Navigation
Startseite
Letzte Änderungen
Alle Seiten
Einführungskurs
Hilfe
Dateien
Suche
Suchen
Werkzeuge
Links auf diese Seite
Spezialseiten