@Bindl: Also wenn es wirklich *keine* Einschränkungen gibt, könnte man ja auch tatsächlich zwei ``print``-Anweisungen schreiben die einfach diese Daten ausgeben. Ich bin mir aber ziemlich sicher das hier der Umgang mit Schleifen gelernt werden soll.
Und dafür kann man sich überlegen wie die äussere Schleife jeweils aussehen muss/kann. Man kann ja beispielsweise eine Schleife über die Anzahl der auszugebenden Zeilen machen, oder eine Schleife über die auszugebenden Werte. Je nach dem wofür man sich entscheidet, sieht der Schleifenkörper dann anders aus. Manchmal ist das eine günstiger, manchmal das andere. Das gleiche gilt bei Zählschleifen für Start- und Endwert für die Laufvariable. Man kann für n Durchläufe von 0 bis n-1 gehen oder von 1 bis n. Manchmal ist das eine günstiger, manchmal das andere.
Bei der ersten Aufgabe musst Du Dir über das Muster klar werden was allen Zeilen gemeinsam ist. Und dann wie man aus einer Zahl, der Laufvariablen, dieses Muster berechnen kann und damit auch erstellen kann. Um es aus diesen aus der Laufvariable berechneten Zahlen dann zu erzeugen kann man entweder wieder Schleifen verwenden, oder sich mal anschauen welche ”Rechenoperationen” in Python auf Zeichenketten implementiert sind.
Bei der zweiten Aufgabe müsstest Du erst einmal überlegen ob Du die Schleife über die Zeilenanzahl oder über die Werte machen möchtest. Oder Du löst die Aufgabe auf beide Arten und hast dabei dann doppelt so viel gelernt, weil Du ein Gefühl dafür bekommst wie man das auf verschiedene Arten löst und welche Vor- und Nachteile beziehungsweise Unterschiede es dabei gibt.