Dieses Programm druckt eine Pyramide (aus einem CS50-Problemsatz). Ich rufe die Funktion rekursiv auf, indem ich n dekrementiere, aber ich wollte auch ihren Anfangswert in allen Schleifen nach der ersten im Auge behalten, also habe ich dafür gesorgt, dass die Funktion zwei Argumente annimmt, die beide den gleichen Wert (Höhe) haben. Ist das schlecht?
Code: Select all
def main():
height = get_h()
pyram(height, height)
def pyram(n, k):
if n > 1:
pyram(n-1, k)
print(" " * (k - n), end = "")
print("#" * n, end = " ")
print("#" * n)
def get_h():
while True:
try:
inp = int(input("height?: "))
except ValueError:
print("no")
if inp > 0:
return inp
if __name__ == "__main__":
main()