Übungen Thema 3
Aufgaben
Aufgaben zum Thema.
Aufgabe 3.1: Wahr oder Falsch
Es folgt ein Skript mit 3 Ausgaben (print
). Bestimmen Sie für jede Ausgabe ob der Ausdruck True
oder False
ist.
x = False
y = True
z = 1
print(x and y and z)
print(x or z)
print(not(x and not y))
Konnten Sie die Ausgaben richtig bestimmen? Prüfen Sie ihre Antworten indem Sie das Skript ausführen.
Aufgabe 3.2: Vereinfachen
Vereinfachen Sie den folgenden Ausdruck:
not (not (a)) and (b and (b or a))
Bestimmen sie, ob dieser unter den folgenden Bedingungen vollständig evaluiert wird oder nicht:
Bedingung 1:
a = True
b = False
Bedingung 2:
a = False
b = True
Aufgabe 3.3: Geheim
Wir haben eine geheime Zeichensequenz erhalten:
msg = 'LeLrLeLrLoLdLeLlLbLmLuLDLsLlLlLiLKLeLpLaLnLSLeLr'
Zum entschlüsseln müssen wir ...
- die Position 4 bis 44 herausschneiden
- die Reihenfolge umkehren
- jede zweite Position lesen
Zur Hilfe haben wir diese Slice-Anweisungen:
msg = msg[::-1]
msg = msg[::2]
msg = msg[4:44]
Wie lautet die geheime Nachricht?
Aufgabe 3.4: Formatierung 🚧
Aufgabe 3.4: Suchen und Ersetzen
Sie erhalten diesen Text:
text = 'The quick brown fox jumps over the lazy dog'
Führen Sie diese Anweisungen aus:
- Suchen Sie nach dem Wort
fox
. Sie erhalten die Position als Antwort. - Ersetzen Sie das Wort
fox
mitcat
.
Wenn das zu einfach war, führen Sie diese Anweisungen aus:
- Alle Zeichen bis zum Wort
brown
ausgeben. - Alle Zeichen ab Wort
brown
ausgeben. - Die Anweisungen 1 und 2 kombinieren damit
The quick fox jumps over the lazy dog
ausgeben wird.
Aufgabe 3.5: DNA
Eine Analyse hat eine DNA-Sequenz zurückgeben.
ACTNGTGCTYGATRGTAGC
Wir möchten herausfinden, ob diese Sequenz auch wirklich DNA enthält [^1]. Zählen Sie die Anzahl der Buchstaben A, T, G und C in der Sequenz zu einer Summe.
⭐ DNA.py
Aufgabe 3.6: DNA 2
Rechnen Sie die Summe geteilt durch die Anzahl Zeichen der Sequenz. Das Ergebnis ist eine Prozentzahl. Formatieren Sie Prozentzahl so, dass die Zahl zwei Stellen nach dem Komma und mit Prozentzeichen ausgegeben wird.
⭐ DNA2.py
Wiederholungsfragen
W1: Wie bilden Sie eine Zeichenkette, die selbst ein Anführungszeichen enthält?
ℹ️ Anführungszeichen sind Zeichen aus der Programmier-Syntax.
s1="O'Reilly" s2='It is "O Reilly"'Eine zweite Möglichkeit bieten die Spezialcodes \' und \":
s3='abc \" def \' ghi' # ergibt: abc " def ' ghi
W2: Wie bilden Sie Zeichenketten, die das Zeichen \ enthalten?
s=r'C:\verzeichnis\readme.txt'
W3: Extrahieren Sie aus der folgenden Zeichenkette das Tag zwischen den eckigen Klammern:
bla [wichtig] mehr bla
s='bla [wichtig] mehr bla' start=s.find('[')+1 # Startposition end=s.rfind(']') # Endposition print(s[start:end]) # Teilzeichenkette auslesen 'wichtig'
W4: Zerlegen Sie den folgenden Dateinamen in Linux-Notation in die Verzeichnisangabe (bis zum letzten /-Zeichen) und den eigentlichen Dateinamen (ab dieser Position):
/home/kofler/Bilder/foto1.jpg
s='/home/kofler/Bilder/foto1.jpg' pos=s.rfind('/')+1 pfad=s[:pos] datei=s[pos:] print('Pfad:', pfad, 'Datei:', datei) Pfad: /home/kofler/Bilder/ Datei: foto1.jpg
W5: Fordern Sie den Anwender eines Scripts auf, seinen Namen einzugeben, und entfernen Sie dann alle Leerzeichen am Beginn und Ende der Eingabe.
name = input('Geben Sie Ihren Namen an: ') name = name.strip()
W6: Geben Sie Hello, World! in umgekehrter Reihenfolge aus.
hello = 'Hello, World!' print(hello[::-1]) !dlroW ,olleH
W7: Was ist die Short-Circuit-Evaluation? Nennen Sie ein Beispiel!
x=2 y=3 if rechenfunktion(x)>0 and rechenfunktion(y)>0: # Code ...