您需要返回给定的axiomsifiterations == 0。在这个函数中,您返回给您的参数axioms,这样如果iterations == 0,您将返回给定的、未触及的公理。在
然后,在你的iteration的末尾,如果iteration存在,你从iteration得到的新创建的公理被转移到axioms中,这样你将返回好的值,如果需要,下一个{}将有新创建的公理进行迭代。:)def lsystem(axioms, rules, iterations):
# We iterate through our method required numbers of time.
for _ in range(iterations):
# Our newly created axioms from this iteration.
newAxioms = ''
# This is your code, but with renamed variables, for clearer code.
for axiom in axioms:
if axiom in rules:
newAxioms += rules[axiom]
else:
newAxioms += axiom
# You will need to iterate through your newAxioms next time, so...
# We transfer newAxioms, to axioms that is being iterated on, in the for loop.
axioms = newAxioms
return axioms
rules = { "A" : "ABA" , "B" : "BBB"}
print(lsystem('AB', rules, 0))
# outputs : 'AB'
print(lsystem('AB', rules, 1))
# outputs : 'ABABBB'
print(lsystem('AB', rules, 2))
# outputs : 'ABABBBABABBBBBBBBB'