Zeichenkette
Zeichenketten sind uns schon ein paar Male begegnet.
Zeichenketten benötigen wir um einzelne oder mehrere Buchstaben zu speichern. Z.B. um die Stiftfarbe der Schildkröte zu setzen: setPenColor("red"). "red" ist dabei die Zeichenkette. Man nenn die so, weil solche Wörter/Texte im Rechner als eine Folge von einzelnen Zeichen abgespeichert werden, technisch gesehen sind sie fast wie ein Feld, das die einzelnen Zeichen als Elemente beinhaltet, darum eine Verkettung von Zeichen.
In Python hat eine Zeichenkette den (Daten-)typ str.
Beispiel Operationen mit Zeichenketten
Wie bei einem Feld, können wir über die eckigen Klammern [ ] auf ein einzelnes Zeichen zugreifen.
Mit der len() Funktion erhalten wir die Länge einer Zeichenkette.
Mit dem Additions-Operator + können wir zwei Zeichenketten aneinander hängen.
Aufgaben 1
Letzter Buchstabe
Question
Schreibe eine Funktion mit dem Namen letzterBuchstabe, welche eine Zeichenkette als Parameter erhält und als Rückgabewert immer den letzten Buchstabe davon zurückgibt.
.128013öesuhftlv1g-n[dbcpmo(ari=])/y:zLk B2050p0c0h0w0y0i0d0I0r0i0w0d0d0z010h0y0s010406050d0e0t0t0w0x0D040G0b0,0n0l050C0,0.0:0=0*0s0405130|160C130*0p0y0j0T0V0X0Z0f0y0l0f0i1k0f0h0(050O0q0i0c1f0W0Y011j1l1n1l0h1t1v1r0h0x140h0f0T0u0R0s0w0n0Z0K011x1h010g0Q0c0n0w0t0c1r0d1R0n1X1z1!1v1%1)0(0a0I0@0_0l0d0j0u0x0d0r1m0w0{0}1-140C1M291J1L1K1s0p1/0Z1n0n1$0u0d1r1c1e0U1y2j0y2l0n0u2q1r0s0x0c141,1S292F0n2E1-2i012x0x0/0i0(0k0|2I0)0+2L2s1Y2O2Q0(0K2U28172C292q2c0p1L2h2Z1z0r2y1*142.152,2X2G2)302^0M2K1S2M0H0(0M0g312J0I2 1.2?0Z0n0g0(1v0h0F0h0c0x0J0e230d1t0c3c353g1g1z0%040v3y3f2M0n0(0F0H3G2I2M3D0B0E3y060I3V3e3O3h0138042C0h0e0x0n3y3X2Y3B3i3K3M27303Y3/013D0o3N3.2t2N0q3l1$3}363Z3D3F3?2J3H3Z3J043L443A3 3Q3,4b3_0u0(0m4g2M0t0y2S4q460(0A3T0|332D2+4C0C2|2a2:0|2d4J0w1u4E2.0*4F0N0P0R04.
Buchstabe suchen
Question
Schreibe eine Funktion mit dem Namen sucheBuchstabe welche das Vorhandensein von einem einzelnen Zeichen in einer Zeichenkette überprüft, oder in anderen Worten: finde heraus, ob z.B. ein Buchstabe in einem Text vorkommt.
Erstelle dazu eine Funktion mit zwei Parametern:
text die Zeichenkette, in der wir suchen
b der zu suchende Buchstabe (auch eine Zeichenkette)
Wenn b in text enthalten ist, dann soll True zurückgegeben werden, andernfalls False. Dies sind sogenannte Boolsche Variablen, welche für Wahr und Falsch stehen.
.128013öeshfTt2lv16g3ndbcFpmo(ari=)/wy:L,k45 Bux050q0c0h0y0A0j0d0M0s0j0y0d0d0B010h0A0u010406050d0O0v0v0y0z0F040H0b0;0p0n050D0;0?0^0`0/0u040518111b0D180/0q0A0k0Y0!0$0(0e0A0n0e0j1p0e0h0-050T0r0j0c1k0#0%011o1q1s1q0h1y1A1w0h0z190h0e0Y0w0W0u0y0p0(0i011C1m010f0V0c0p0y0v0c1w0d1W0p1$1E1)1A1,1.0-0a0M0|0~0n0d0k0w0z0d0s1r0y10121=190D1R2e1O1Q1P1x0q1@0(1s0p1+0w0d1w1h1j0Z1D2o0A2q0p0w2v1w0u0z0c191;1X2e2K0p2J1=2n012C0z0@0j0-0l112N0.0:2Q2x1%2T2V0-0i2Z2d0/2N2R2*0y2W040o2.2L2:2%1l1E2?2^0K2{2O2}1X2=252+040L342#2;2(30392@0-0m3d1c2H2e2v2h0q1Q2m3g0(0s2D1/193q1a3o2$2L3m3x0R2P373v010J0-0R0f3d0M3E1?3L0p0f0-0;280c0N0O280d1y0c3m3f2 0(0,040x3,2~2y2S0-0h0c0P0h3?3K3.013:0I3R3T2=0-0r3 3U413:0C0G3d060M4i3S3-3^3N040f25454l2)0-0s4r3@1%0w0E0-2A4w403^0p3`3|3~2c3F4s1E3:4f4K354j4S4k4x1E4n0A3Q4Q044U4E4t044v4!4$4b3^0w0-0B0B4D4-4(494!463L4O4g4T4 4,2R4n2H0h0O0z0p4?520s0-0g0z0O3+4!064h4j4{41530S56584+5l4m5b040t2@0d5g2!0/0D3H2I3n5E0D3B2f3s112i5L0y1z5G3q5B0R0T0V0d04.
Vokale zählen
Question
Schreibe eine Funktion mit dem Namen zähleVokale mit einem Parameter text. Die Funktion soll zählen, wieviele Vokale in text vorhandne sind.
Erstelle dazu eine Funktion mit einem Parameter:
text die Zeichenkette, in der wir die Vokale suchen
.128013öesähq;98ft2lv1760g3ndbVc+pmo(ari=)/wy:zLk45 ux050w0c0l0F0H0n0d0T0z0n0F0d0d0I010l0H0B010406050d0U0C0C0F0G0M040P0b0`0v0t050K0`0|0~100^0B04051e171h0K1e0^0w0H0o0(0*0,0.0f0H0t0f0n1v0f0l0?050Z0x0n0c1q0+0-011u1w1y1w0l1E1G1C0l0G1f0l0f0(0D0$0B0F0v0.0m011I1s010k0#0c0v0F0C0c1C0d1$0v1,1K1/1G1=1@0?0a0T12140t0d0o0D0G0d0z1x0F16181{1f0K1X2k1U1W1V1D0w1}0.1y0v1;0D0d1C1n1p0)1J2u0H2w0v0D2B1C0B0G0c1f1`1%2k2Q0v2P1{2t012I0G0}0n0?0T0p172T0@0_2W2D1-2Z2#2%0m2*2j0^2T2X2;0F2$040T0u2^2R2`2.1r1K2}2 0T0R332U351%2|2b2=300S3d2,2{2/383i2~2%0r3m3f1|3p0.392%0q3v2-3g3y2Y3r3a0j3D3o373z3I2%0i3L362E3H2!3s040p0s3S3F3N3V3j0p2)2i343E3x3%3A3Y2@3,3e3.3h3W2 0p323@3n3T2:3P3Y3c3 3w3`3)3l463_3G3;0p3u3 1i2N2k2B2n0w1W2s3G0z2J1^1f4l1g4j3.2S2j054r0X2V3$3U0Q0?0X0k3m0T4c3:0k0?0O0e1x0c0y0D0Q2~0c3m4N3U0=040E4!3M3U0v0?0l0c0V0l4*411K4%0J0N3v060T4~4M4+2:0?1%0O0F1x4L4#1-0D0?0I58511K0C0H0?3!464 504@0.4H040k2b5e5o2Y0?0x5u4F5a0L0?2G5z3/4,4.4:4=4h5f0.4%4{5l5m4 591K5q0H4K3 5n5A385x5F2X5b040I5d5Y5T0.0d1*04020g0U0D0l0h0F5?5^5`4?5!5N0?5P2+4}5R675.5w0454560n5%3G5)0A5,2+5Z5G1-5h0?3+65674~695V5X6k694-045y5-5M015)5+6f3%5:0?5}5_0h0c6L5 5L5v5O3v6s5R6y530v55576C5v6h6j2j6l2X6o3Y6U6s6u5D6w6*6X6A6H3U6F6)2R6+3G6J5=5@6M0H6P0h606m4^636/6V6t6D6z6c6#6x6D6(6`6n5i6.5Q686D6v7m5#6_6$616E5c6}2U6 6I5;760D76782X6T7q7d6^7h6e7x790.7l7R6,7o6q2_6V6;045W7u3z5$7V6g7A7(0171760U7I6R7y7L6r7d7e5v7g6Z6d7.7U7j5v6-7Y34667|7y5q2N0l0U0G0v7.7~6!7Q65174C2O4i8o0K4v2l4n172o8v0F1F8q4l0^8r0Y0!0$04.
Lösung
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 | def zähleVokale(text):
anzahl = 0
for b in text:
if b == "a":
anzahl += 1
if b == "e":
anzahl += 1
if b == "i":
anzahl += 1
if b == "o":
anzahl += 1
if b == "u":
anzahl += 1
return anzahl
|
Weitere Aufgaben
Buchstaben Position suchen
Question
Schreibe eine Funktion mit dem Namen sucheBuchstabePosition welche das Vorhandensein von einem einzelnen Zeichen in einer Zeichenkette überprüft und die Position von diesem Buchstaben zurückgibt.
Erstelle dazu eine Funktion mit zwei Parametern:
Wenn b in text enthalten ist, dann soll die Position vom ersten Auftreten in der Zeichenkette zurückgegeben werden, andernfalls \(-1\).
.128013öeshft2lv176g3-n[dbcpmo(ari=])/wy:PL,k45 Bux050s0c0g0z0B0i0d0P0u0i0z0d0d0C010g0B0v010406050d0R0w0w0z0A0H040K0b0@0q0n050F0@0_0{0}0=0v04051b141e0F1b0=0s0B0j0#0%0)0+0e0B0n0e0i1s0e0g0:050W0t0i0c1n0(0*011r1t1v1t0g1B1D1z0g0A1c0g0e0#0x0Z0v0z0q0+0h011F1p010f0Y0c0q0z0w0c1z0d1Z0q1)1H1,1D1/1;0:0a0P0 110n0d0j0x0A0d0u1u0z13151^1c0F1U2h1R1T1S1A0s1`0+1v0q1.0x0d1z1k1m0$1G2r0B2t0q0x2y1z0v0A0c1c1@1!2h2N0q2M1^2q012F0A0`0i0:0k142Q0;0?2T2A1*2W2Y0:0h2$2g0=2Q2U2-0z2Z040o2;2O2?2*1o1H2_2{0N2~2R301!2^282.040O372(2@2+333c2`0:0m3g391_3j0+340:0l3g1f2K2h2y2k0s1T2p3s010u2G1=1c3B1d3z2)2O3x3I0U2S3a3G0M0:0U0f3g0P3P3r323t0f0:0@2b0c0Q0R2b0d1B0c0J2v0B0-0x0q3x3i3)010/040y3 312B2V0:0g0c0S0g463V41430L3#3%2^0:0t4f3(48430E0I3p060P4x3$40483X040f284k4A2,0:0B4G471*0x0G4J3~2f2O4z4M330t0:0A1!0n0c4p2U43454S2R4l3G0q4X041}4%3G4)4?410q4a4c4e4+3U4q1*4s4t3p4y564U4g4B4J3!4 5851334|4d4_4r0:0r5j4I044K4 4-4h0:0D4L594N0:0C0C5w5f3t4n5n1H434u4 4w575M5s5a042K0g0R0A4R2%5e4m5p4v565O1*4C5R5T5V2g5X3G0x0:0p5G0+0w0B2!3p143S2L3y5}0F3M2i3D142l640z1C5 3B0=600V0X0Z04.
Lösung
| def sucheBuchstabePosition(text, b):
for i in range(len(text)):
if text[i] == b:
return i
return -1
|
Wort suchen *
Question
*Anspruchsvoll
Schreibe eine Funktion welche das Vorhandensein einer Zeichenkette in einer anderen überprüft, oder in anderen Worten: finde heraus, ob z.B. ein Wort in einem Text vorkommt.
Erstelle dazu eine Funktion mit zwei Parametern:
Wenn s in text enthalten ist, dann soll True zurückgegeben werden, andernfalls False.
-
Die Funktion hat ein Parameter vom Typ Feld
-
Hinweis: Verwende nicht das Schlüsselwort in, wir wollen die Funktionalität von in nachbauen.
.128013öesäh98fTt2lv17!60g3-n[dWbIc+pmFo(ari=])/wy:jL,kS45 ux050y0c0k0J0L0m0d0!0C0m0J0d0d0M010k0L0E010406050d0#0F0F0J0K0R040U0b110w0t050P111315170 0E04051l1e1o0P1l0 0y0L0n0/0;0?0^0f0L0t0f0m1C0f0k0}050*0A0m0c1x0=0@011B1D1F1D0k1L1N1J0k0K1m0k0f0/0H0-0E0J0w0^0l011P1z010i0,0c0w0J0F0c1J0d1-0w1?1R1_1N1|1~0}0a0!191b0t0d0n0H0K0d0C1E0J1d1f221m0P1(2r1#1%1$1K0y240^1F0w1{0H0d1J1u1w0:1Q2B0L2D0w0H2I1J0E0K0c1m211.2r2X0w2W222A012P0K140m0}0!0o1e2!0~102%2K1@2*2,2.0l2;2q0 2!2(2{0J2-040!0u2 2Y312^1y1R34360!0Y3a2#3c1.332i2|370Z3k2?322_3f3p352.0r3t3m233w0^3g2.0p3C2@3n3F2)3y3h0h3K3v3e3G3P2.0g3S3d2L3O2+3z040o0s3Z3M3U3$3q0o2:2p3b3L3E3.3H3)2~3?3l3^3o3%360o393~3u3!2`3W3)3j463D413:3s4d403N3{0o3B4i3T3#4l3J4o483x420}0o3R4t3-4q4a0o3Y461p2U2r2I2u0y1%2z3N0C2Q1 1m4K1n4I3^2Z2q054Q0(2$4B1@0W0}0(0i3t0!4j3`0i0}112l0c0z2i0k3t4:3#0|040I4}4p2`0}0k0c0$4|4G541R500V4.4~55040d534u0^500O0S3C0!5s4/5c3G0}0m0e1c0c0j585a2=5u5m010H0}0M5g5v2)0A5x1{5l4(5d0}525b5H0w565D5S3_4 0}0O5r5t5h3f5x5z0t0c0X0#4^5M5H5J045L465G5T3G5P04275$2(505W2=5-5w5j653N5o3C065t5 5%4)0}0i2i5_602)0}0L6p6k1R0H0Q6s0w6u33620K1.5;6d3.676H4q5/5A5C596B3N5{0v6Q3`6M5;5?5^5~6a5I0}0D6U3#0F0L4x6K1@5o5q4d6h6i5,5N5Z045;0i0#0w0(6A6!5N5{5}5F6#0W0C0}0j0K0#0c5+6@6j2(4*046n0K6)5i0T7n6w6y042N7q610}6E5A6.5U517A6b5y5A6Y0f7e5X6q6:7f7g6^5Y0}0A5@0f0d1L0c0B0w7H7J76735K7v6r6c7K6v5n0}0x7D7*7p7,660}0N7N7O7h4k7R7T7V0J0A7X0w6O5E2q7}3.747)6`576P7@6e7/7;6`6t725`6%8c0}7?695N507`6=7|6i776s4-8m6q6`7S2l81837Y867)5{0q75886#8E807W7Y7!7;506;2=6?8x6@8Q0}6|6~708L7(8C7-01780}0G350d7#308!8$5N7j0L8B7$7Q6{0c6}6 5R8g6I0}8Y308#5s8z042U0k0#0K71916q8;047b7d6g8{9f9h9j9l8P8}79048?0-8_3@0P4#2V4H9I0P4U2s4M1e2v9P821N4J1v2?9L0)0+0-04.
Lösung
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 | def sucheWort(text, s):
längeText = len(text)
längeSuche = len(s)
for i in range(längeText - längeSuche + 1):
gefunden = True
for j in range(längeSuche):
buchstabeInSuche = s[j]
buchstabeInText = text[i + j]
if buchstabeInText != buchstabeInSuche:
gefunden = False
if gefunden:
return True
return False
|
# Tests(Groß-/Kleinschreibung wird nicht beachtet)(Ctrl+I)
(Alt+: ; Ctrl, um die Spalten zu vertauschen)
(Esc)