Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige ÜberarbeitungVorherige ÜberarbeitungNächste Überarbeitung | Vorherige Überarbeitung | ||
lesson:coding04 [2024/01/08 07:53] – [Nutzereingaben] mccab99 | lesson:coding04 [2024/01/15 09:10] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 162: | Zeile 162: | ||
zahl = input(" | zahl = input(" | ||
# jetzt umwandeln | # jetzt umwandeln | ||
- | name = int(zahl) | + | zahl = int(zahl) |
print(zahl) | print(zahl) | ||
</ | </ | ||
Zeile 188: | Zeile 188: | ||
... dann wird es auch für dich beim Testen ein wenig spannender. | ... dann wird es auch für dich beim Testen ein wenig spannender. | ||
</ | </ | ||
+ | |||
+ | ==== Lösungen ==== | ||
+ | |||
+ | === Aufgabe 1 === | ||
+ | <file python zahlplus10.py> | ||
+ | zahl = input(" | ||
+ | zahl = int(zahl) | ||
+ | print(" | ||
+ | print(zahl+10) | ||
+ | </ | ||
+ | |||
+ | === Aufgabe 2 === | ||
+ | <file python copytovar.py> | ||
+ | eingabe = input(" | ||
+ | neu = eingabe | ||
+ | print(" | ||
+ | print(neu) | ||
+ | </ | ||
+ | |||
+ | === Aufgabe 3 === | ||
+ | <file python combinestrings.py> | ||
+ | teil01 = " | ||
+ | teil02 = " | ||
+ | kombi = teil01+teil02 | ||
+ | print(kombi) | ||
+ | </ | ||
+ | |||
+ | === Aufgabe 4 === | ||
+ | <file python linearfunc.py> | ||
+ | b = input(" | ||
+ | a = input(" | ||
+ | b = int(b) | ||
+ | a = int(a) | ||
+ | x = 0 | ||
+ | while x < 10: | ||
+ | print(x*b+a) | ||
+ | x = x + 1 | ||
+ | </ | ||
+ | |||
+ | === Aufgabe 5 === | ||
+ | <file python guess_number.py> | ||
+ | import random | ||
+ | zufallszahl = random.randint(1, | ||
+ | |||
+ | eingabe = input(' | ||
+ | eingabe = int(eingabe) | ||
+ | |||
+ | # eine beliebige Variable mit einem Wert | ||
+ | # wenn man gegen die Variable prüft, kommt immer " | ||
+ | raten = True | ||
+ | |||
+ | # Schleife läuft so lange, bis die Variable " | ||
+ | while raten: | ||
+ | if eingabe < zufallszahl: | ||
+ | print(' | ||
+ | elif eingabe > zufallszahl: | ||
+ | print(' | ||
+ | else: | ||
+ | print(' | ||
+ | raten = False | ||
+ | if raten: | ||
+ | eingabe = input(' | ||
+ | eingabe = int(eingabe) | ||
+ | </ | ||
+ | |||
+ | |||
=== Codeanalysen === | === Codeanalysen === | ||
Zeile 206: | Zeile 272: | ||
else: | else: | ||
| | ||
+ | </ | ||
+ | |||
+ | ===== Arrays ===== | ||
+ | Arrays sind spezielle Datenstrukturen, | ||
+ | |||
+ | <WRAP center round info 60%> | ||
+ | Strenggenommen gibt es in Python eigentlich keine Arrays, sondern man kann Listen so wie Arrays verwenden, aber das ist erstmal eine Spitzfindigkeit. | ||
+ | </ | ||
+ | |||
+ | <file python array_00.py> | ||
+ | autos = [" | ||
+ | noten = [1, | ||
+ | print(autos[0]) | ||
+ | print(noten[2]) | ||
+ | </ | ||
+ | |||
+ | === Wichtige Arrayfunktionen === | ||
+ | Oft braucht man die Länge eines Arrays. Das geht über die Funktion len(). Die Länge gibt die Anzahl der Elemente eines Arrays an. | ||
+ | |||
+ | <file python array_01.py> | ||
+ | autos = [" | ||
+ | anzahl_autos = len(autos) | ||
+ | print(anzahl_autos) | ||
+ | </ | ||
+ | |||
+ | Manchmal muss man ein leeres Array mit einer vorgebenen Anzahl an Elementen vorbereiten (initialisieren). | ||
+ | |||
+ | <file python array_02.py> | ||
+ | autos = [0]*10 | ||
+ | </ | ||
+ | |||
+ | ... erzeugt an Array aus 10 Elementen, die alle den Wert 0 besitzen. | ||
+ | |||
+ | === Die For-Schleife === | ||
+ | Fast speziell für ein Array konzipiert ist die For-Schleife. Mit dieser kann man sehr bequem durch ein Array durchlaufen. Das geschieht in folgendem Code. Das Array " | ||
+ | |||
+ | <file python array_02.py> | ||
+ | autos = [" | ||
+ | anzahl_autos = len(autos) | ||
+ | |||
+ | for i in range(anzahl_autos): | ||
+ | print(autos[i]) | ||
+ | </ | ||
+ | |||
+ | range() gibt (für uns erstmal) an, wie oft die For-Schleife durchlaufen werden soll - in diesem Beispiel viermal. i ist die sogenannte " | ||
+ | |||
+ | <WRAP center round info 60%> | ||
+ | Strenggenommen handelt es sich bei der Pythonversion der For-Schleife eigentlich um eine foreach-Schleife. Auch das ist eine Spitzfindigkeit. | ||
+ | </ | ||
+ | |||
+ | Wir können in range() auch einen Anfangswert übergeben: | ||
+ | |||
+ | <file python array_03.py> | ||
+ | autos = [" | ||
+ | anzahl_autos = len(autos) | ||
+ | |||
+ | for i in range(2,4): | ||
+ | print(autos[i]) | ||
+ | </ | ||
+ | |||
+ | Der letzte Code gibt nur die Array-Elemente 3 (autos[2]) und 4 (autos[3]) aus. | ||
+ | |||
+ | ==== Aufgaben ==== | ||
+ | |||
+ | === Aufgabe 1 === | ||
+ | Schreibe ein Programm, welches alle Elemente (mindestens 10) eines Arrays aus Integern aufsummiert. | ||
+ | |||
+ | <file python loesung01.py> | ||
+ | notenspiegel = [1, | ||
+ | num_students = 0 | ||
+ | |||
+ | for i in range(16): | ||
+ | num_students = num_students + notenspiegel[i] | ||
+ | </ | ||
+ | |||
+ | === Aufgabe 2 === | ||
+ | Eine Klausuraufgabe lautete: " | ||
+ | |||
+ | Mohamed hat die Aufgabe als einziger richtig gelöst - allerdings ist der Code überhaupt nicht schön, weil ihm noch keine Arrays zur Verfügung standen. | ||
+ | |||
+ | <file python mohamed.py> | ||
+ | l = 1*0+2*1+2*2+1*3+1*4+3*5+1*6+2*7+3*8+4*9+1*10+2*11+1*12+1*13+1*14+1*15 | ||
+ | m = 1+2+2+1+1+3+1+2+3+4+1+2+1+1+1+1 | ||
+ | n = str(l/m) | ||
+ | k = 1*0+2*1+2*2+1*3+1*4+3*5+1 | ||
+ | p = 1+2+2+1+1+3+1 | ||
+ | q = "Der Durchschnitt beträgt:" | ||
+ | h = str(k/p) | ||
+ | print(q) | ||
+ | print(h) | ||
+ | </ | ||
+ | |||
+ | Löse die Aufgabe, indem du Arrays verwendest. Nutze einmal dafür die dir schon bekannte While-Schleife und einmal die neue For-Schleife, | ||
+ | |||
+ | Tipp: Speichere die Anzahl der Klausuren in einem Array mit 16 Elementen. Der Index repräsentiert dann einfach die Anzahl der Punkte. Welche weiteren Vorteile hat das Verfahren mit den Arrays für die Lehrkraft im Vergleich zu Mohameds Lösung? | ||
+ | |||
+ | <file python loesung02.py> | ||
+ | notenspiegel = [1, | ||
+ | num_students = 0 | ||
+ | num_students_failed = 0 | ||
+ | sum_grades = 0 | ||
+ | |||
+ | for i in range(16): | ||
+ | num_students = num_students + notenspiegel[i] | ||
+ | sum_grades = sum_grades + (notenspiegel[i] * i) | ||
+ | |||
+ | for i in range(4): | ||
+ | num_students_failed = num_students_failed + notenspiegel[i] | ||
+ | |||
+ | average = round(float(sum_grades/ | ||
+ | failed = round(float(num_students_failed/ | ||
+ | |||
+ | print(" | ||
+ | print(" | ||
</ | </ |