lehrkraefte:blc:informatik:ffprg1-2020:stringvar

This is an old revision of the document!


Strings (Zeichenketten)

Ein String (Zeichenkette) ist eine Folge von “Buchstaben”.

So lange nur ASCII-Zeichen verwendet werden, geht alles problemlos, ein Buchstabe ist immer ein Byte. Werden Umlaute wie ä,ö,ü oder andere Zeichen wie z.B. 😀 verwendet, wird die Sache etwas komplizierter und es muss auf das Encoding geachtet werden, wofür eigentlich fast immer UFT-8 verwendet werden sollte.

Zusammenfügen mit '+':

a = "Hello "
b = "world!"
c = a+b
print(c)

Einzelne Bytes als Strings der Länge 1 auslesen (nicht zwingend Buchstaben):

a = "abcde"
print(a[0])
print(a[4])

Länge eines Strings (in Anzahl Bytes):

a = "abc"
print(len(a))
b = "öh"
print(len(b))   # ergibt 3, weil das 'ö' zwei Bytes belegt!

String mit Zahl multiplizieren:

print("na"*31 + " she's got the look!")

Substrings:

a="hello world!"
print(a[3:5])   # Von und mit viertem bis ohne sechstem Byte
print(a[6:])    # Von siebtem Bytes bis Schluss
print(a[:5])    # Von Anfang bis ohne sechstem Byte

Loop:

for b in "Hello World":
   print(b)

Aufgaben

Gegeben sind zwei Zahlen $x$ (Breite) und $y$ Höhe. Produzieren Sie dann folgende Ausgabe, Beispiel für x=6 und y=3

+---+---+---+---+---+---+
|   |   |   |   |   |   |
+---+---+---+---+---+---+
|   |   |   |   |   |   |
+---+---+---+---+---+---+
|   |   |   |   |   |   |
+---+---+---+---+---+---+

Lösungsvorschlag

Lösungsvorschlag

raster.py
x = 6
y = 3
 
h = "+---"*x + "+"
v = "|   "*x + "|"
for i in range(y):
    print(h)
    print(v)
print(h)

Gegeben ist die halbe Grösse $x$ vom Quadrat. Produzieren Sie damit folgende Ausgabe (für $x=2$):

+-----+
|\   /|
| \ / |
|  X  |
| / \ |
|/   \|
+-----+

Lösungsvorschlag

Lösungsvorschlag

asciiart.py
x = 3
h = "+" + "-"*(x*2+1) + "+"
print(h)
for i in range(1,2*x+2):
    l = "|"
    for j in range(1,2*x+2):
        if (i==x+1 and j==i):
            l+="X"
        else:
            if (j==i):
                l+= "\\"
            elif(2*x+2-j==i):
                l+= "/"
            else:
                l+=" "
    l+="|"
    print(l)
print(h)
  • lehrkraefte/blc/informatik/ffprg1-2020/stringvar.1580808471.txt.gz
  • Last modified: 2020/02/04 10:27
  • by Ivo Blöchliger