Array
In der vorherigen Lektion haben wir Schleifen kennengelernt,
um Befehle mehrmals auszuführen. Aber was, wenn wir mehrere
verschiedene Werte speichern und weiterverarbeiten möchten?
Beispiel 1: Verschiedene Werte in einer Schleife fürs Zeichnen verwenden (Array-Iteration)
Wenn wir z.B. drei verschiedene Farben nacheinander zum Zeichnen verwenden wollen:
- Ohne Arrays: brauchen wir drei Variablen
farbe1, farbe2 und farbe3, dabei eine Schleife zu verwenden wird etwas kompliziert.
- Mit Arrays: brauchen wir nur eine Variable
farben mit drei Elementen und können eine Schleife verwenden!
Arrays (Felder) ermöglichen uns, mehrere zusammengehörige Werte
elegant zu verwalten und mit Schleifen zu verarbeiten.
Es wird hier gezeichnet...
Question
Ändere das obige Programm so ab, dass zuerst ein blauer Punkt gezeichnet wird.
Stell dir zum Beispiel vor, du möchtest die grösste Zahl unter vier Kandidaten finden. Mit unserem bisherigen Wissen müsstest du für jede mögliche Kombination eine eigene Bedingung formulieren: der Code würde schnell unübersichtlich und fehleranfällig. Genau genommen müsstest du bei einer naiven Lösung insgesamt \(8\) Fälle berücksichtigen und Verzweigungen dazu schreiben.
Um solche Situationen eleganter zu lösen, machen wir einen Schritt der Abstraktion: Anstatt jede Zahl einzeln zu betrachten, fassen wir mehrere Werte in einer geordneten Sammlung zusammen; so, als würden wir sie nebeneinander in ein Regal stellen. In der Programmierung nennt man eine solche Struktur ein Array (im Deutschen auch „Feld“ genannt).
Fachbegriff: Array
Ein Array ist ein (Daten-)typ, der es uns ermöglicht, viele Elemente als Einheit zu behandeln. Es hat eine bestimmte Grösse (die Anzahl gespeicherter Elemente) und erlaubt uns, auf jedes einzelne Element gezielt zuzugreifen. Damit können wir Probleme viel kompakter und allgemeiner lösen, unabhängig davon, ob wir 4, 40 oder 400 Zahlen/Buchstaben/Bilder/... usw. verarbeiten wollen.
Definition
Arrays sind im Grunde genommen auch Variablen und zwar vom Typ "Array".
Arrays kommen mit ihrer eigenen Syntax und auch mit neuen Sonderzeichen. An den eckigen Klammern \([]\) erkennen wir Arrays.
Um ein neues Array zu definieren können wir die zwei Klammer direkt als den "Wert" verwenden, genauso wie bei allen anderen Variablendefinitionen.
Wenn nichts innerhalb der Klammern steht, ist das Array erstmals leer, d.h es hat keine Elemente.
Um einem Array direkt bei der Definition mit Elementen zu füllen, können wir sie innerhalb der eckigen Klammern, durch Komma getrennt auflisten.
Dieses Array enthält nun vier Elemente, und zwar die Zahlen \(4\), \(3\), \(9\) und \(1\).
Grösse
Bei einem eindimensionalen Array, also solche wie vorhin vorgestellt wurden, sagen wir für die Grösse eines Array auch "Länge".
Dementsprechend heisst die Funktion um die Grösse von einem Array zu ermitteln: len().
grösse = len(neues_ArrayB)
print("Die Grösse vom Array ist: ", grösse)
In diesem Beispiel wir nun die Grösse vom Array neues_ArrayB ausgegeben, d.h es erscheint \(4\) in der Ausgabe, da das Array insgesamt vier Elemente besitzt.
Zugriff
Einzelnes Element
Um auf ein einzelnes Element zuzugreifen verwenden wir auch die eckigen Klammern. Wenn die Klammern direkt nach dem Namen der Variable steht, bedeutet dies den Zugriff auf ein Element. In diesem Fall muss innerhalb der Klammer ersichtlich sein, welches Element wir genau wollen. Die Zahl oder den Term innerhalb der Klammer bezeichnen wir als Index.
Hier wird auf das Element mit dem Index \(1\) zugegriffen . Wichtig ist hierbei, dass der Index bei \(0\) beginnt. Darum ist das Element mit Index \(1\) in diesem Fall die Zahl \(3\), (als Erinnerung: neues_ArrayB enthält [4,3,9,1]). Wenn wir dieses Element nun ausgeben, wird eine \(3\) in der Ausgabe erscheinen.
Question
Erstelle eine Variable vom Typ Array mit mehreren Zahlen als Inhalt. D.h. Die Variable enthält danach mehrere Zahlen.
- Gib das erste Element aus
- Gib die Anzahl Elemente aus
- Gib das letzte Element aus
Lösung
einPaarZahlen = [4,3,2,1,7]
print("Erstes Element: ", einPaarZahlen[0])
print("Anzahl: ", len(einPaarZahlen))
print("Letztes Element: ", einPaarZahlen[len(einPaarZahlen)-1])
Modifizieren
Bis jetzt haben wir Arrays einmal erstellt und sie dann so belassen.
Aber diese Datenstrukturen können wir auch während der Programausführung modifizieren.
Beispiel 1: Element in Array modifizieren
Wir können ein bestehendes Array direkt mit den eckigen Klammenr [ ] modifizieren. Wir können das einzelne Element somit wie eine Variable behandeln.
Beispiel 2: Element zu Array hinzufügen
Bei bestehenden Arrays können wir beliebig viele Elemente anhängen. Dazu schreiben wir den Namen vom Array gefolgt von .append( NEUER_WERT ). Innerhalb der zwei Klammern geben wir den gewünschten Wert an.
Mit Arrays rechnen
Question
Addiere den Wert vom ersten Element zum Wert vom zweiten.
Speichere das Ergebnis im dritten Element. Gib den ganzen Array am Schluss aus.
.128013d/n52Lc[oysvf70w]re+lö4 u3tm1bipg)z,a6=(h050b0t0B0L0F0v0l0y0h0v0L0l0l0N010B0F0G010406050l0z0C0C0L0s0k040g0w0;0d0H050c0;0?0^0`0/0G040518111b0c180/0b0F0m0Y0!0$0(0P0F0H0P0v1p0P0B0-050T0E0v0t1k0#0%011o1q1s1q0B1y1A1w0B0s190B0P0Y0j0W0G0L0d0(0f011C1m010n0V0t0d0L0C0t1w0l1W0d1$1E1)1A1,1.0-0a0y0|0~0H0l0m0j0s0l0h1r0L10121=190c1R2e1O1Q1P1x0b1@0(1s0d1+0j0l1w1h1j0Z1D2o0F2q0d0j2v1w0G0s0t191;1X2e2K0d2J1=2n012C0s0@0v0-0D112N0.0:2Q2x1%2T2V0-0f2Z2d0/2N2R2*0L2W040A2.2L2:2%1l1E2?2^0x2{2O2}1X2=252+040e342#2;2(30392@0-0M3d361?3g0(310-0o3d1c2H2e2v2h0b1Q2m3p010h2D1/193y1a3w2$2L3u3F0R2P373D0d0-0J0L1r1+3d0y3M3o2 0(0j0-0N3!3$2R0,040i3u3f3(010C0F0-332c3N3@2y013:0K3-401%3`0-3c3~2O3.3D43452~4148043l4b3R3%413:0r3m3n2=0-0t260B0t0l4g3S3^3*043,4m3#46303V3X1`3?4h1%3:3=4m4d3^4j0p4O4C4p0-4r4m4t3T3V0q0t0F4y4A4H4U414E4G2!4I4P4K043W3Y0d4Y4o4Q0-4S2!4;473{042Y4T4J0(4q3m564{131.4B511E4?5k4u044w0l4.5o3D4E0u5u3^3U4|4+4-4z5f5c2S4L4~503/535K3D4j2-5b4`5d4#5y4=3+5V2)0-5i0t5F5S2S0E0-2G2A0B5N3^3:0O5/415A5#5?52040I5f0c3P2I3v610c3J2f3A112i680L1z633y0/640S0U0W04.
Lösung
| zahlen = [4, 5, 6]
erstes = zahlen[0]
zweites = zahlen[1]
summe = erstes + zweites
zahlen[2] = summe
print(summe)
|
Mehrere Elemente: Iteration
Häufig wollen wir alle Elemente eines Arrays nacheinander verwenden. Dies ist eine weitere Anwendung für das Konzept Schleife
Wir können dazu eine Variante der for-Schleife verwenden.
Mit dem Index können wir ein einzelnes Element auslesen. Wenn wir auf alle Elemente nacheinander zugreifen wollen, müssen wir also den Index hochzählen, bis wir alle Elemente durchnummeriert haben.
Beispiel 1: Array-Iteration
ein_paar_zahlen = [8,2,3]
for i in range(3):
zahl = ein_paar_zahlen[i]
print(zahl)
Überlege dir zuerst was die Ausgabe von diesem Programm sein könnte!
Probiere es nun aus:
Weitere Aufgaben
Vorhandensein eines Elements im Array überprüfen
Question
Schreibe ein Programm, welches überprüft ob ein Element in einem Array vorhanden ist. Ist der Wer der Variable gesuchteZahl in dem Array zahlen vorhanden?
- du brauchst die for i in range(..)-Schleife.
- du brauchst die Länge des Arrays
.128013d/n(52Lc[oysvf7;w]rkqejlö4 u3tm1bipgZ)z,:a6=9h050b0w0E0Q0I0y0m0B0i0y0Q0m0m0S010E0I0J010406050m0C0F0F0Q0t0l040h0z0_0d0K050c0_0{0}0 0@0J04051d161g0c1d0@0b0I0n0%0)0+0-0U0I0K0U0y1u0U0E0=050Y0H0y0w1p0*0,011t1v1x1v0E1D1F1B0E0t1e0E0U0%0k0#0J0Q0d0-0g011H1r010o0!0w0d0Q0F0w1B0m1#0d1+1J1.1F1;1?0=0a0B11130K0m0n0k0t0m0i1w0Q15171`1e0c1W2j1T1V1U1C0b1|0-1x0d1:0k0m1B1m1o0(1I2t0I2v0d0k2A1B0J0t0w1e1_1$2j2P0d2O1`2s012H0t0|0y0=0G162S0?0^2V2C1,2Y2!0=0g2(2i0@2S2W2/0Q2#040D2?2Q2^2,1q1J2{2}0A302T321$2`2a2:040f392*2_2-353e2|0=0R3i3b1{3l0-360=0p3i1h2M2j2A2m0b1V2r3u010i2I1@1e3D1f3B2+2Q3z3K0W2U3c3I0d0=0N0Q1w1:3i0B3R3t340-0k0=0S3)3+2W0;040j3z3k3-010F0I0=382h3S3|2D013^0O3{33463 2;4a3X3}484f3,4c40043y432T3?3I4i4p3W4k1,4d042%4u4r4h0=494B454x4m0T4j3@0=0s3r4C463Z040K0w0_2d0E0w0L3$0y3=4H1J3/043;4u3*4(0-4y4o2)063s2W0u0=0o2a4%4b2.0=0I4~4g460k0r510d534w350H0=0t1$4U4L4s0=0e5i3}4y3h4G4 1J3^0M0P3r060B5y4.5r0-4`040I0o5a2`3!4#3(5q541,3^3`5M5b3v515m463^4O4-4Q1,4*0S4,2)5A5N350=4U4W1z4Z4#5V5O0=5v4u5x5z5|5!5c0=2L2F0E5?5s5k640-0m1)04020v0C0k0E0q0x0Q0O0B4U0o0C0d0W0d6c6e6g67470=0M4P0c3U2N3A6C0c3O2k3F162n6J0Q1E6E3D0@6F0X0Z0#04.
Lösung
| zahlen = [4,2,7,1,9]
gesuchteZahl = 7
for i in range(5):
if zahlen[i] == gesuchteZahl:
print("ja, gefunden")
|
Grösstes Element in einem Array
Question
Schreibe ein Programm, welches das grösste Element aus einem Array heraussucht.
.128013d/nS52Lc8[Aysvf7.;w{kWlö4 uEtm1?Vp6D=ä(9ü}PIo0]rRqe3big:),ah050b0Z0D0+0$0x0n0A0i0x0+0n0n0L010D0$0I010406050n0B0E0E0+0W0m040h0y170d0%050c17191b1d150I04051r1k1u0c1r150b0$0o0^0`0|0~0,0$0%0,0x1I0,0D13050:0#0x0Z1D0{0}011H1J1L1J0D1R1T1P0D0W1s0D0,0^0T0?0I0+0d0~0g011V1F010p0=0Z0d0+0E0Z1P0n1?0d1|1X1 1T2224130a0A1f1h0%0n0o0T0W0n0i1K0+1j1l281s0c1.2x1+1-1,1Q0b2a0~1L0d210T0n1P1A1C0_1W2H0$2J0d0T2O1P0I0W0Z1s271@2x2%0d2$282G012V0W1a0x130A0F1k2*14162-2Q1}2:2=2@0g2`2w152*2.310+2?040A0!352(372~1E1X3a3c0A0z3g2+3i1@392o323d0f3q2|382 3l3v3b2@0J3z3s293C0~3m2@0q3I2}3t3L2/3E3n0j3Q3B3k3M3V2@0O3Y3j2R3U2;3F040F0U3)3S3!3,3w0F2_2v3h3R3K3@3N3/343|3r3~3u3-3c0F3f443A3*303$3/3p4c3J473_3y4j463T410F3H4o3Z3+4r3P4u4e3D48130F3X4z3?4w4g0F3(4G3 4I4C040g3;4M4l3.0g3{2{4k4q4g0g432{1v2!2x2O2A0b1-2F3T0i2W251s4,1t4*3~2)2w054=0.2,4H3013242T0l0W0W0+0m3z0A4p3@0T130L5d5f3+12040k3z5l1}0E0$134i4(4v1}5n0*5q5y1X5t134%4~5D0~5A5C4A0~5F044y5x5N015L4c5r5E5u3/5M531X5V5S5$5O5Z4L5)4N5z130V3I4Z3@0i0F13030A0H2o0%0Z0,210(0A0$2r0A0#5a0B2r1U0Z2T210A020Y0B0T0D0s0H0Z0W0%1T660,0n0t6p0D6i6k6m0A0N0%0)3=5/1X5_5{0A0K0$0Z0n6p0A0t0$0W2F5t0D0A3b2d0A0C1T240d0D6g0+0B0@0.0E0A585a0m0A0o6p6r6t216G2.6J045|0e0T0#3b2F6e290%0W1g6P2!0@6$0Z6(6X3b0@56290+0v0D0B0Z0x1T0W0A0w6x6C6E6~4;5`710A600p0B0d0.296S6U0*0A2J0,2465671A6O6g2J7r296z6l0s7a7c6*297x0W6y6j7$6Y0?7B5^7D5|6o6q6s2r6v7y0p0P7v7K0A0X6O6X2n6:0R0W0T7a230E5?5X0~707_6`7|6u6w7-6Y6:0l0d0p1@0%0A0L0A6p0n6*7f6%210D7?4w132u2{5e5J015h045j4c8M5T0d55786=5b5#6H5K135p5W8N5P4S5.2.5n5=4j5@3+8j7w6T6^8l6e6c790A6W7;6!7g7i6}4T7C6K8w7M2F0#6e6:8A7*6L0B0W2r0%8v8 0$6X0n6t0A6P0x0#8B8`7{6|0d5B967@6K0+9c826N0@0$9w6_0W222r0x0M0|1I750W0r8H1}8@6M6O0A0v0y0d6)1U9M1H7J7y8o830b9i2r640p2o6565295a1i0Z0N0F7O2d0N7m8Y0m0)0)0(9X1X0v139_0W5k8N8V040$ai5T0T0t132Tan5*2/0#139~608!8.130NaA4qaw042daE3@5naD8)8U8W57598ZaNau5na9ab8;0AaZ8Tau8@0S9w0b0{6Y7p7r7t1U938F7F7b0|6Q7k8 785}8{6t7~7-0G3Ia!a#8#01aeal0patb6aka6aR5caTb65n8(8-4qaraJ5m5;bb2.8P020%6mbrbm048K5I5T5naX4Yb4b48h2/8Jbx5g5ibL8I04be6?bo5:5obT3lbnbhaB048:4Y8=30aG2Z2T8GbZ3TaLbW0~0n0+afb;010n1`047#6m0Ka+7(0|6*6#8E6)659wb_9q130ub_akbA2(bIcb040Qcab|b~0sb_aV3Q0c502#4)cv0c4_2y4.1k2BcC9F1T4+1B2|cy0/0;0?04.
Lösung
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 | meinArray = [4,2,7,1,9]
# Vorgehen: ich brauche einen "Vergleichswert" (g)
# Dieser wird mit allen Elementen aus dem Array verglichen
# Sobald ein grösseres Element als mein aktueller Wert (g)
# gefunden wird, nehme ich diesen neuen "grössten Wert" als
# Vergleichswert für den Rest vom Programm
# Vergleichswert am Anfang = erstes Element
g = meinArray[0]
# Wir vergleichen g mit allen Elementen
# g wird beim ersten Durchgang mit sich selbst verglichen,
# aber dies ist vernachlässigbar.
# Dies könnte verhindert werden durch: for i in range(1, len(meinArray)):
for i in range(len(meinArray)):
# Ist das aktuelle Element grösser als mein Vergleichswert?
if meinArray[i] > g:
g = meinArray[i]
print(f"Das grösste Element ist {g}")
|
Durchschnitt aller Zahlen in einem Array
Question
Schreibe ein Programm, welche das arithmetische Mittel aller Elemente (Zahlen) von einem Array aus Zahlen berechnet.
Dazu dividierst du die Summe aller Zahlen durch deren Anzahl.
.128013d/n(}52Lc8[Aoysvf70;w]{rkqe+lö4 u3tm1bipg):,Ma6D=9h050b0B0J0U0N0D0p0G0j0D0U0p0p0X010J0N0O010406050p0H0K0K0U0y0o040i0E0~0d0P050c0~1012140|0O04051i1b1l0c1i0|0b0N0q0,0.0:0=0Z0N0P0Z0D1z0Z0J0`050%0M0D0B1u0/0;011y1A1C1A0J1I1K1G0J0y1j0J0Z0,0n0*0O0U0d0=0h011M1w010r0)0B0d0U0K0B1G0p1*0d1:1O1?1K1_1{0`0a0G16180P0p0q0n0y0p0j1B0U1a1c1 1j0c1#2o1Y1!1Z1H0b210=1C0d1^0n0p1G1r1t0-1N2y0N2A0d0n2F1G0O0y0B1j1~1+2o2U0d2T1 2x012M0y110D0`0G0L1b2X0{0}2!2H1;2%2)2+0h2.2n0|2X2#2^0U2*040G0I2|2V2~2=1v1O31330G0F372Y391+302f2_340g3h2:2 2?3c3m322+0V3q3j203t0=3d2+0s3z2;3k3C2$3v3e0k3H3s3b3D3M2+0Y3P3a2I3L2(3w040L0t3W3J3R3Z3n0L2-2m2V1m2R2o2F2r0b1!2w3K0j2N1|1j3^1k3?3I2Y3q053~0#2Z3*3Y0d0`1{2K0m0y0y0U0o3q0G452#0n0`0X4n4p3K0_040l473Q3Y0K0N0`3/2/4v3+4x0S4A3X1;4D4F4M4c1;4K4R3B3+4P3$4V2#4x0w3z3A300`1d1{4u4B1;4r044t3:2Y4o4/1O4Y3(4@3r4N3c0`0d4.500=4;4?2/4_552$0M0`244!4w0`0e5g3+4e044g0d4i4k4m4~4I3Y4x0Q3)4W3Y0z0`0r2f544S51040N5F5z4:0v0`2K5K305d044k190B5k5v5i5X2@525!1O5w0R3z0G5,5a5G3D4+0 4-4~5.5L1O575Q3K5m4,5W5@5u4:0`0C5|5l4f0B4h4j4l5%0=4x4z5t4`5:5I6d014$4(4)5}4f0N1U0B0D0v0B0y0J663Y5{616i2$5;106059625`0`0c6A5#04534~066p5l5S2Q2K6z6h5b4x5j6!5/010p0U5C6l0p1.04020A0H0n0J0u0W6x0G0T6s0J6u6w6y0G2e206.4E040x6l5m5o5q6c6(5_0=0p780f6.6:0G0N0p0J4o7g2#7j0`7a7t6q5n6 716x6Z4H6E7v047l7y3+6/0`6=6@6_6l5w3H0c492S3=7W0c422p3`1b2s7%0U1J7Y3^0|7Z0$0(0*04.
Lösung
| meinArray = [1,1,1]
summe = 0
n = len(meinArray)
for i in range(n):
summe = summe + meinArray[i]
mittelwert = summe / n
print(f"Der Mittelwert von {meinArray} ist {mittelwert}")
|
Array befüllen
Question
- Erstelle eine Variable vom Typ Array.
- 'Fülle' das Array mit den Zahlen von 0 bis 20.
- gib das Array mit
print aus
.128013d/n52Lc[oysvf.w]rkelö4 u3tm1bipg):za=(h050b0t0A0K0E0u0l0x0h0u0K0l0l0L010A0E0F010406050l0y0B0B0K0r0k040g0v0/0d0G050c0/0;0?0^0-0F0405160 190c160-0b0E0m0W0Y0!0$0N0E0G0N0u1n0N0A0+050R0D0u0t1i0Z0#011m1o1q1o0A1w1y1u0A0r170A0N0W0j0U0F0K0d0$0f011A1k010n0T0t0d0K0B0t1u0l1U0d1!1C1%1y1*1,0+0a0x0`0|0G0l0m0j0r0l0h1p0K0~101:170c1P2c1M1O1N1v0b1=0$1q0d1)0j0l1u1f1h0X1B2m0E2o0d0j2t1u0F0r0t171/1V2c2I0d2H1:2l012A0r0=0u0+0C0 2L0,0.2O2v1#2R2T0+0f2X2b0-2L2P2(0K2U040z2,2J2.2#1j1C2;2?0w2_2M2{1V2:232)040e322c2E2G0 2t2f0b1O2k2$1C0h2B1-173g182F2N2J3b053n0P3u1;3l0$0d0+0J0K1p1)3b0x2!353C010j0+0L3K3M3B2}0$0*040i0q3b343V2w010s0+0n233T2/3O3E040E3/2|3)0j0p0+2y3^3N3W2Q0D0+0r1V0G0t3w3:413Y0M493_1#0B0E2*2W2a3v4a3)3Y0H0I3$0x4t3L4n2%3F3H1^4e403`0+0o4B3(4x040K0F0F1)0b4G2P4c4P3;3}4S4b0+0H3$3%2:43042E2y0A4V4o0+4d4l2M3U2:4y3I0d4+1#4p3$0 3y3e1c3t3f1g3h2f2i2d0K1x4 3g0-0c0P0R0T0l04.
Lösung
| zahlen = []
for i in range(21):
zahlen.append(i)
print(zahlen)
|
Zweidimensionale Arrays
Oft haben wir es aber mit Daten zu tun, die eher eine "Tabellenform" aufweisen wie z.B. Bilder (eine "Tabelle" von Pixel) oder Spielbretter ("Tic-Tac-Toe").
Fachbegriff: Zweidimensionaler Array
Ein zweidimensionales Array (2D) ist ein Array von Arrays:
# 3 Zeilen, 4 Spalten
array_2d = [
[1, 2, 3, 4], # Zeile 0
[5, 6, 7, 8], # Zeile 1
[9, 0, 1, 2] # Zeile 2
]
Ein 2D-Array hat viele Elemente, welche in Zeilen und Spalten angeordnet sind. Es besteht aus verschachtelten Arrays. Die Anzahl Zeilen ist die Länge des äusseren Arrays. Die Anzahl Spalten ist die Länge einer einzelnen Zeile.
Zugriff
Um nun auf ein Element zuzugreifen, müssen zwei Indexe angegeben werden, der Index der Zeile und der Index der Spalte.
#array_2d[zeile][spalte]
print(array_2d[1][2]) # Entspricht dem Wert 7 (2. Zeile, 3. Spalte)
Ändern können wir analog Elemente ändern, wie bei eindimensionalen Arrays:
array_2d[0][3] = 99 # setzt in Zeile 0, Spalte 3 den Wert 99
Beispiel 1: Über ein 2D-Array iterieren
Mit zwei verschachtelten Schleifen können wir auf alle Elemente nacheinander Zugreifen.
2D-Aufgaben
Summe aller Elemente (2D)
Question
Berechne die Summe aller Zahlen in einem 2D-Array.
.128013d/n(S}52Lc8[oysvf70;w]{rkqej+lö4 u3tm1bi_pgZ)z,:a6D=9h050b0B0K0X0O0E0p0H0k0E0X0p0p0!010K0O0Q010406050p0I0L0L0X0y0o040j0F110d0R050c111315170 0Q04051l1e1o0c1l0 0b0O0q0/0;0?0^0$0O0R0$0E1C0$0K0}050*0N0E0B1x0=0@011B1D1F1D0K1L1N1J0K0y1m0K0$0/0n0-0Q0X0d0^0i011P1z010r0,0B0d0X0L0B1J0p1-0d1?1R1_1N1|1~0}0a0H191b0R0p0q0n0y0p0k1E0X1d1f221m0c1(2r1#1%1$1K0b240^1F0d1{0n0p1J1u1w0:1Q2B0O2D0d0n2I1J0Q0y0B1m211.2r2X0d2W222A012P0y140E0}0H0M1e2!0~102%2K1@2*2,2.0i2;2q0 2!2(2{0X2-040H0J2 2Y312^1y1R34360H0G3a2#3c1.332i2|370h3k2?322_3f3p352.0Y3t3m233w0^3g2.0s3C2@3n3F2)3y3h0l3K3v3e3G3P2.0#3S3d2L3O2+3z040M0t3Z3M3U3$3q0M2:2p3b3L3E3.3H3)2~3?3l3^3o3%360M393~3u3!2`3W3)3j463D413:3s4d403N3{0M3B4i3T3#4l3J461p2U2r2I2u0b1%2z3N0k2Q1 1m4x1n4v3^2Z2q054D0(2$3-4q0}150y0X0o0P0i0b3t0H4j3.0n0}0!4#4%3#0|040m3C0H4?4$4p1@4/4;4t4_1R0L0O0}3=2=4-4`0}0V4,4~0^500}3}545a014/58464^484 5104455f5m0^5i595s015c044c5r4R56040w5j2=4?551R0k0M0}030H0S0B1`0H3+4d4@5l5C1R4{3t5J5b5o4h5B3_4.575v5Y5%0}4n5*2(5u5k5$5x5o4s5?3N5^5H5`5y3R4}5w4/5F4#5X5+1@5L5N5P5R1N2/4=4@5`5!655/5{0}3Y6n6b5Z5-5_5g5y5U5~3.602q6a2(5y534M5g6C2Y6E3N5y5e6I660}0w696M3.6d045O5Q5S6P3@6J6S3C4e4k0}0U6g1{5.6t0^4)044+6w5w0d0N0}275#6(040e706{4T0y4V4X4Z746o4/0T3,6=2)0}2X0E0K6:6`6o6@6_615g6|6~7m6A5,727b7g0d76784Y4!6s5@0}4|7w1@6y7z7H5E7e4d6+3`7i121~6;2(7p7X6N5o6z305`0z0}0r2i7!7T040O7.3#0n0v0}2N7=2`6}044V1c0B7N5 0}737G6,046.1`0d826B0}0T0W6j5I5g7*047,0y7{3f0}0C8o6?7^7:8b7n7A7}7 0R81868d7y8D4S047j7l8w7K6u048f8h5W6V8H0v0B0y0K8s017Z8x337C4W7E8c7x7J6Q6o7B7:8*5D0w8,2Y5`8/8r8G8=6*8R6k7s7U138C7r5w8!958.927W8#3N6@0D8Y8/8U8W6*8_7}2T2N8X8|8N858M0^0p0X7+8;1R0p1;04020A0I0n0K0u0Z0O1O0f7V1O0O0p0K0W4$9q9u5o0x9y3G9a948-7g0p5o0g9Y019A0}9D9F9H9+7d3K0c4O2V4u9`0c4H2s4z1e2va10X1M9|4x0 9}0)0+0-04.
Lösung
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 | array_2d = [
[1, 2, 3, 4], # Zeile 0
[5, 6, 7, 8], # Zeile 1
[9, 0, 1, 2] # Zeile 2
]
zeilen = len(array_2d)
spalten = len(array_2d[0])
summe = 0
for i in range(zeilen):
for j in range(spalten):
wert = array_2d[i][j]
summe = summe + wert
print(f"Die Summe ist: {summe}")
|
Grösstes Element finden mit Position (2D)
Question
Finde das grösste Element in array_2d und gib Wert, Zeilenindex und Spaltenindex aus.
Beispielausgabe: Max = 17 an (2, 1).
.128013d/n(}52Lc8[oysvf70;w]{rkqejlö4 uE3tm1bi_pgZ)z,:a6D=9h050b0A0J0W0N0C0o0F0j0C0W0o0o0Z010J0N0P010406050o0G0K0K0W0x0n040i0D100d0Q050c101214160~0P04051k1d1n0c1k0~0b0N0p0.0:0=0@0#0N0Q0#0C1B0#0J0|050)0M0C0A1w0;0?011A1C1E1C0J1K1M1I0J0x1l0J0#0.0m0,0P0W0d0@0h011O1y010q0+0A0d0W0K0A1I0o1,0d1=1Q1^1M1{1}0|0a0F181a0Q0o0p0m0x0o0j1D0W1c1e211l0c1%2q1!1$1#1J0b230@1E0d1`0m0o1I1t1v0/1P2A0N2C0d0m2H1I0P0x0A1l201-2q2W0d2V212z012O0x130C0|0F0L1d2Z0}0 2$2J1?2)2+2-0h2:2p0~2Z2%2`0W2,040F0I2~2X302@1x1Q33350F0E392!3b1-322h2{360g3j2=312^3e3o342-0X3s3l223v0@3f2-0r3B2?3m3E2(3x3g0k3J3u3d3F3O2-0!3R3c2K3N2*3y040L0s3Y3L3T3#3p0L2/2o3a3K3D3-3G3(2}3=3k3@3n3$350L383}3t3Z2_3V3(3i453C403/3r4c3 3M3`0L3A4h3S3!4k3I4n473w410|0L3Q451o2T2q2H2t0b1$2y3M0j2P1~1l4D1m4B3@2Y2p054J0%2#3,4p0|140x0W0n0O0h0b3s0F4i3-0m0|0Z4+4-3!0{040l3B0F4|4,4o1?4^4`4z4 1Q0K0N4w3s4?500|0U4=540@560|3|2;5a1Q4^5d454~4t5g5704445k5f015n5e5r015h044b5w5B4^0v5o2;4|5l0@0j0L0|030F0R0A1_0F3*4c4}5q4X5b4_595x5D4g5G5$5m5c5A5.5s0|4m5-3^4@5:5p5N5C5t4r5_2%5z5}5*5t4y623M5I5K2p5M5x5P5R5T5V1M2.4{4}5~515)5B5D3X535H5|5L5~5D5Y693-646x66586u5=5y6w6d6y5t5j4S5x5I4+6e5B6g045S5U5W6O3?6Q0|0v3B4d4j0|0T6j1`5;5`1?4/044;655B0d0M0|266q6I4^0e6 6;3e4Z0x4#4%4)73630|0S3+743F0|2W0C0J6/6_6I6?6^6E6`6|046~6H7g6J04727w3276784(4*7B6a0|526B3!6z7b7I040v7e4c6*3_0|0Q0x190o7l0o6:2%7p7%6+044!4$7F7O6C7J7:7M5t6A6P6v7Q7K7`6I7N7H7;7Q7f2%0y0|0q2h7*7V040N8a3!0m0u0|2M8e2_7t4#1b0A7?5%7A7L2_6,6.0d8q5/040S0V6m6T6I8604880x8k75040B8K0@8g8i8x7n7x6{0|8n0Q8p815{7z8y7h047j7l8S8t8z8B8D5!5#8U0|0u0A0x0J8O017)8T7C7,777.7a8!5%7}2X5~0d8i8%7y0v972!990|8N958z6(7T8;6n5x8G0N0q8|9a048^8`8|6?020Q0J0t9u7W7Y0=7#9c4^8C5Z9o8;9h047X7Z9J8 3M8~7r6I9v9x8{7T997t2S2M9$8-0@719c0o0W879:1:04020z0G0m9D0Y0;0F9S9I1N0H1M1}0d0J0F0N7!0V4,9k0@0o5t0w9c9va27!0A7$af01ah0|0f9@0|9`9|9D9K7d3J0c4U2U4AaF0c4N2r4F1d2uaM0W1LaH4D0~aI0(0*0,04.
Lösung
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 | array_2d = [
[1, 2, 3, 4], # Zeile 0
[5, 6, 7, 8], # Zeile 1
[9, 0, 1, 2] # Zeile 2
]
zeilen = len(array_2d)
spalten = len(array_2d[0])
grösstes = array_2d[0][0]
for i in range(zeilen):
for j in range(spalten):
wert = array_2d[i][j]
if wert > grösstes:
grösstes = wert
print(f"Das grösste Element ist: {grösstes}")
|
Zeilensummen (2D)
Question
Berechne für jede Zeile die Summe aller Elemente.
Speichere das Ergebnis wieder in einem Array Zeilensummen
Die erste Zeilensumme ist \(1+2+3+4=10\), somit ist das erste Element in Zeilensummen \(10\).
.128013d/n(S}52Lc8[oysvf70.;w]{rkqej+lö4 uE3tm1bi_pgZ)z,:a6D=9h050b0C0M0Z0Q0F0p0I0k0F0Z0p0p0$010M0Q0S010406050p0J0N0N0Z0z0o040j0G130d0T050c13151719110S04051n1g1q0c1n110b0Q0q0;0?0^0`0(0Q0T0(0F1E0(0M0 050,0P0F0C1z0@0_011D1F1H1F0M1N1P1L0M0z1o0M0(0;0n0/0S0Z0d0`0i011R1B010r0.0C0d0Z0N0C1L0p1/0d1^1T1{1P1~200 0a0I1b1d0T0p0q0n0z0p0k1G0Z1f1h241o0c1*2t1%1)1(1M0b260`1H0d1}0n0p1L1w1y0=1S2D0Q2F0d0n2K1L0S0z0C1o231:2t2Z0d2Y242C012R0z160F0 0I0O1g2$10122)2M1_2,2.2:0i2?2s112$2*2}0Z2/040I0L312!332`1A1T36380I0H3c2%3e1:352k2~390h3m2^342{3h3r372:0!3v3o253y0`3i2:0s3E2_3p3H2+3A3j0l3M3x3g3I3R2:0%3U3f2N3Q2-3B040O0t3#3O3W3(3s0O2=2r3d3N3G3:3J3+303^3n3`3q3)380O3b403w3$2|3Y3+3l483F433=3u4f423P3}0O3D4k3V3%4n3L4q4a3z440 0O3T4v3/4s4c0O3!4C3{4E4y040i3-4I4h3*0i3@2@4g4m4c0i3 4U4l3|4X474!4r4b4L0i4e4)4w3X4,4j4/4D4+3s0i4p4@4J4_4R4u2@1r2W2t2K2w0b1)2B3P0k2S211o561p543`2#2s055c0*2(4^3h0 170z0Z0o0R0i0b3v0I4#3%0n0 0$5A5C1_0~040m3E0I5O5B4*1T5K5M485I1T0N0Q4z3v5W0`5K0X5H5R0`5Y0 4Z5l5+015(5*4:015-044(5:5^5?485Q5^5`4.5}5q5%0 0x5)606166010k0O0 030I0U0C1|0I4O4U5P6c4~5S0 5U525;5`4?656s67046a2@6r2*5`4|6A2*5 6F5$5_5Z04516K3P6M2s6G3P5`4B6w5~686E6W6X3:6f6h6j6l1P2;5N5P6O5T5#6x6Q4H6#6d6V2!6*3%5`6o6T3:6 2%711_5`4T753%77396O5`5/2!6@685A5O6O6,046i6k6m7j415;5K0x3E4V3|0 0W6/1}5@6d5E045G606O0d0P0 296_6$040e7S6d0d5s0z5u5w5y7W6B5=0 0V3.7)7Y042Z0F0M7G7M5;7J7L6N5;7O7Q7@6}7)5K7V5V7}7Z7#5x5z857T6v7d7a6Q747k7x687,4f7B4s7D7F0d1i200d7H7)7`8v6L6u7z8m8n1_0A0 0r2k8y4m0 0Q8J3:0n0w8L8u7^5^7~045u1e0C7(8z7U8!8K047E1|8S818#0V0Y6=7o867:14208N5D5F8`8f0 8h3n6q6O8F048H0z8}5r040D980`8P8R9c2+7P8W1:0T8Z8b6~0 848-8(7;7?8,8e6t048/8;6q79990w0C0z0M9g8x8T7X875v898%766u9P8o048M9n82688d8i8U0 9b9W8#8B4U069B6?8?8s9m7|5^9J9=9L8@159;6W6O7J0E9g7/9E9G9A7N8p8+9:9v9!7I0 0u9S2|5s0S0S1}8a9r9Q8$9(9s8^9|ab9X9y7A7N9i2V2P9Hapan9q9w0`0p0Z8Gaf1T0p1?04020B0J0n0M0v0#0Q1Q7t29a90I0p2P0b0Y5BaC3%a$0 0yaK3Ia7aZaraa2%6Oa-040ga:01aM0 aPaRaTa~5K8l9+7p6g7r6i0K0z9E0Q7?9G1Q2f0J1e8:4P3P9496a18L9I8Q9Ua^7g7}9i8X9lb59pa~7/8*7Ra+5J7+bn6p9.9#8)7F9I8|9K7.9M7$alaF7*5LbFbtbJ9x9*32928?bH1}9:bS7Kb$bQa8a@bDb#b(a;9Ub`b*3db,8Uay0zaAb`aEat2*aHaJb|a aNb2aS0vbd0p7?6.6m0e0Q7{bZa{a/cd7/9Vama,6Qa}cdb09y0I0fara)a~csb?b.8rarcIczcIaNcm1PcHcB6Qctcxagb@1PcO0 cAcYaLcfaQchb`b7321g5n2X53c?0c5g2u581g2xc}0Z1Oc^5611c_0+0-0/04.
Lösung
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 | array_2d = [
[1, 2, 3, 4], # Zeile 0
[5, 6, 7, 8], # Zeile 1
[9, 0, 1, 2] # Zeile 2
]
zeilen = len(array_2d)
spalten = len(array_2d[0])
zeilensummen = []
for i in range(zeilen):
summe = 0
for j in range(spalten):
wert = array_2d[i][j]
summe = summe + wert
zeilensummen.append(summe)
print(f"Die Zeilensummen sind: {zeilensummen}")
## Erweiterte Lösung:
for i in range(zeilen):
zeile = array_2d[i]
zeilensumme =zeilensummen[i]
print(f"Erste Zeile (i={i}) Summe: {zeilensumme} Zeile: {zeile}")
|
Question
Gegeben ist ein 3×3-Array brett mit "X", "O" oder " ".
Schreibe ein Programm, das prüft, ob "X" oder "O" gewonnen hat (3 in einer Reihe: waagrecht, senkrecht oder diagonal).
Gib z.B. X gewinnt, O gewinnt oder Niemand gewinnt aus.
.128013d/n52Lc[oysvf.w]rkelö4 u3tm1bipg):za=(h050b0t0A0K0E0u0l0x0h0u0K0l0l0L010A0E0F010406050l0y0B0B0K0r0k040g0v0/0d0G050c0/0;0?0^0-0F0405160 190c160-0b0E0m0W0Y0!0$0N0E0G0N0u1n0N0A0+050R0D0u0t1i0Z0#011m1o1q1o0A1w1y1u0A0r170A0N0W0j0U0F0K0d0$0f011A1k010n0T0t0d0K0B0t1u0l1U0d1!1C1%1y1*1,0+0a0x0`0|0G0l0m0j0r0l0h1p0K0~101:170c1P2c1M1O1N1v0b1=0$1q0d1)0j0l1u1f1h0X1B2m0E2o0d0j2t1u0F0r0t171/1V2c2I0d2H1:2l012A0r0=0u0+0C0 2L0,0.2O2v1#2R2T0+0f2X2b0-2L2P2(0K2U040z2,2J2.2#1j1C2;2?0w2_2M2{1V2:232)040e322c2E2G0 2t2f0b1O2k2$1C0h2B1-173g182F2N2J3b053n0P3u1;3l0$0d0+0J0K1p1)3b0x2!353C010j0+0L3K3M3B2}0$0*040i0q3b343V2w010s0+0n233T2/3O3E040E3/2|3)0j0p0+2y3^3N3W2Q0D0+0r1V0G0t3w3:413Y0M493_1#0B0E2*2W2a3v4a3)3Y0H0I3$0x4t3L4n2%3F3H1^4e403`0+0o4B3(4x040K0F0F1)0b4G2P4c4P3;3}4S4b0+0H3$3%2:43042E2y0A4V4o0+4d4l2M3U2:4y3I0d4+1#4p3$0 3y3e1c3t3f1g3h2f2i2d0K1x4 3g0-0c0P0R0T0l04.
# Tests(Groß-/Kleinschreibung wird nicht beachtet)(Ctrl+I)
(Alt+: ; Ctrl, um die Spalten zu vertauschen)
(Esc)