Ich wußte, daß der Stil zu Widerspruch reizen würde, aber es ist eine "1:1 Übersetzung von Pseudo-C", wenn ich das mal so sagen darf. Wie auch immer, Iteratoren mögen zwar besser sein, aber ich möchte Dich auf einen schweren Bug im Programm hinweisen. Es muß so lauten:
Code: Alles auswählen
import thesis
from itertools import ifilter
topics = ifilter(thesis.funding, thesis.iter_topics())
for years_in_gradschool, thesis_topic in enumerate(topics):
data = thesis.run_experiment(thesis_topic)
good_enough = thesis.query(thesis.advisor)
if data >= good_enough:
thesis.graduate()
break
Beachte bitte, daß die Bestimmung der Variable good_enough unabhängig von der Datenlage ist, so daß der Vergleich data >= good_enough de facto ebenfalls unabhängig von der Datenlagen ist. Der Vergleich ist notwendig, um die Öffentlichkeit nicht allzusehr zu stören. Die Bestimmung von good_enough auf diese Weise ist die Anpassung des Programms an die Realität.
Gruß,
Christian
PS ... der froh ist einen netten Kerl zum Chef zu haben.