<jupyter_start><jupyter_text>Aufgaben zum Warmwerden mit SchleifenIn diesem Notebook finden sich Aufgaben, die den grundlegenden Umgang mit Schleifen üben sollen.Es werden jeweils eine Reihe von Anweisungen vorgegeben, die eine repetitive Aufgabe erfüllen.Ihre Aufgabe ist es nun, stattdessen eine Schleife zu schreiben, die die selbe Aufgabe erfüllt.Die Fortgeschrittenen-Aufgaben fordern jeweils die Angabe einer Funktion, die die Aufgabein allgemeinerer Form erfüllt.Im Unterordner `Lösungen` gibt es ein Notebook mit Lösungen zu diesen Aufgaben.  Aufgabe:Die folgenden Anweisungen geben nacheinander die Zahlen von $1$ bis $10$ auf der Konsole aus:<jupyter_code>print(1)
print(2)
print(3)
print(4)
print(5)
print(6)
print(7)
print(8)
print(9)
print(10)<jupyter_output><empty_output><jupyter_text>**Basis-Aufgabe:** Schreiben Sie eine Schleife, die dieselbe Ausgabe hat.  **Fortgeschritten:** Schreiben Sie eine Funktion, die die Anzahl der auszugebenden Zahlen als Parameter erwartet.  Lösung (Basis):<jupyter_code>for i in range(10):
    print(i+1)<jupyter_output><empty_output><jupyter_text>Lösung (Fortgeschritten):<jupyter_code>def zahlen(n):
    for i in range(n):
        print(i+1)
        
#Aufruf zum Test:
zahlen(10)<jupyter_output><empty_output><jupyter_text>Aufgabe:Im Folgenden definieren wir zwei gleich lange Listen und geben Komponentenweise deren Summe aus:<jupyter_code>l1 = [1,3,5,7,9]
l2 = [2,4,6,8,10]

print(l1[0] + l2[0])
print(l1[1] + l2[1])
print(l1[2] + l2[2])
print(l1[3] + l2[3])
print(l1[4] + l2[4])<jupyter_output><empty_output><jupyter_text>**Basis-Aufgabe:** Schreiben Sie eine Schleife, die den selben Effekt hat.  **Fortgeschritten:** Schreiben Sie eine Funktion, die zwei gleich lange Listenerwartet und die diese Summen ausgibt.  Lösung (Basis):<jupyter_code>for i in range(5):
    print(l1[i] + l2[i])<jupyter_output><empty_output><jupyter_text>Lösung (Fortgeschritten):<jupyter_code>def summen(l1, l2):
    for i in range(len(l1)):
        print(l1[i] + l2[i])
# Aufruf (zum Test)
summen([1,3,5],[2,4,6])<jupyter_output><empty_output><jupyter_text>Aufgabe:Im Folgenden definieren wir einen String und geben ihn anschließend rückwärts in einzelnen Zeilen aus.<jupyter_code>s = "Hallo"
print(s[4])
print(s[3])
print(s[2])
print(s[1])
print(s[0])<jupyter_output><empty_output><jupyter_text>**Basis-Aufgabe:** Schreiben Sie eine Schleife, die die selbe Ausgabe hat.  **Fortgeschritten:** Schreiben Sie eine Funktion, die einen String erwartet und rückwärts ausgibt.  Lösung (Basis): Wir zeigen zwei Varianten.Die erste ist eine Schleife, die rückwärts läuft:<jupyter_code>for i in range(4,-1,-1):
    print(s[i])<jupyter_output><empty_output><jupyter_text>Die zweite Variante lässt den Zähler vorwärts laufen und berechnet dann ausder Länge des Strings die Position des Zeichens, das ausgegeben werden soll:<jupyter_code>for i in range(5):
    print(s[5-i-1])<jupyter_output><empty_output><jupyter_text>Lösung (Fortgeschritten):<jupyter_code>def rueckwaerts(s):
    laenge = len(s)
    for i in range(laenge):
        print(s[laenge-i-1])
# Aufruf (zum Test)
rueckwaerts("Hallo")<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.11630123927550047, 'fraction_numerical': 0.025103272958373054, 'mean_word_length': 6.7346437346437344, 'pattern_counts': {'":': 0, '<': 41, '<?xml version=': 0, '>': 41, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '10', 'dir': 'jupyter-structured-clean-dedup', 'id': '125212', 'license': 'MIT', 'n_tokens_mistral': 1295, 'n_tokens_neox': 1307, 'n_words': 298, 'path': 'Aufgaben/Loesungen/Schleifen_Grundlagen.ipynb', 'repo_name': 'wwi20ama-programmierung/python-intro', 'size': '3147'}