Python-Datentypen

Werbung
Vorsemesterkurs
Informatik
Übungsaufgaben
Python-Datentypen
Aufgabe 1: Python starten
(a) Öffne ein Terminal (konsole, xterm, . . . ), gib python ein und drücke die Enter-Taste. Lies ab,
welche python-Version vorliegt.
(b) Gib danach exit() ein und drücke die Enter-Taste. Was passiert?
(c) Wir versuchen nun, die Entwicklungsumgebung idle zu starten.
1. Gib dazu in einem Terminal idle ein (drücke noch nicht die Enter-Taste).
2. Drücke danach zweimal auf die TAB -Taste. Mit der TAB-Taste kannst du anzeigen lassen,
ob es mehrere idle-Versionen gibt. Falls mehrere idle-Versionen erscheinen, tippe die höchste
Version ein und drücke auf Enter. Beispiele:
Falls nur idle erscheint, gib ein: idle &
Falls idle-python3.1 erscheint, gib ein: idle-python3.1 &
3. Ein Fenster mit der Überschrift Python Shell öffnet sich. python befindet sich jetzt im
interaktiven Modus, welchen du schnell durch die drei Zeichen >>> erkennst.
(d) Gib nun in der python-Shell print(’Hello World!’) ein.
(e) Gib
>>>
>>>
>>>
in der python-Shell (d. h. im interaktiven Modus) ein:
a = 123
b = 456
a*b
(f) Gib
>>>
>>>
>>>
in der python-Shell (d. h. im interaktiven Modus) ein:
c = 2
d = 32
c**d
(g) Am Anfang hast du Hello World ausgegeben. Danach hast du a · b und cd berechnet. Diese
Anweisungen lassen sich in einem Programm speichern, indem du eine Datei wie folgt anlegst:
1. In dem Fenster Python-Shell, klicke links oben auf File → New Window. Ein Fenster mit
dem Titel *Untitled* öffnen sich.
2. Gib in dem Fenster folgendes ein.
print(’Hello World!’)
a = 123
b = 456
a*b
c = 2
d = 32
c**d
3. Im Fenster *Untitled*, klicke links oben auf File → SaveAs. Es öffnet sich ein Fenster, in
welchem du den Dateinamen und den Speicherort auswählen kannst. Speichere die Datei
als hello.py in einem Ordner deiner Wahl ab.
4. Das Fenster *Untitled* hat nun eine andere Überschrift. Klicke in diesem Fenster oben auf
Run → Run Module (Alternativ kannst du auch F5 drücken). Nun wird das Programm
in einer interaktiven python-Shell ausgeführt. Hier kannst du jetzt die eben deklarierten
Objekte beobachten. Gib hierzu zum Beispiel print(a) oder nur a ein und bestätige mit
der Enter-Taste.
5. Falls du später die Datei hello.py oder eine andere python-Datei öffnen willst, starte IDLE
mit dem Befehl idle hello.py. Falls IDLE schon gestartet wurde führt folgende Prozedur
zum Ziel: Im Fenster Python Shell, klicke oben auf File → Open und wähle durch Klicken
deine Datei aus. Klicke dann auf Open.
6. Möchtest du den Inhalt dieser Datei auch in einem anderen Programm verwenden, so kannst
du
from hello import *
print(a+b)
in eine weitere Datei schreiben und diese Ausführen.
Aufgabe 2: Primitive Datentypen
(a) Im interaktiven Modus von Python:
1.
2.
3.
4.
5.
6.
Erstelle zwei logische Variablen a und b mit unterschiedlichen Belegungen
Gebe das Ergebnis der Konjunktion dieser Variablen aus
Gebe das Ergebnis der Disjunktion dieser Variablen aus
Belege a mit ihrem negierten Wert
Gebe das Ergebnis der Konjunktion der beiden Variablen aus
Gebe das Ergebnis der Disjunktion der beiden Variablen aus
(b) Im interaktiven Modus von Python berechne: (2 + 3 · 4) · 365, wobei:
• nur Integers benutzt werden dürfen
• arithmetische Operationen nur für Variablen benutzt werden dürfen
• in jeder Zeile auf einmal nur eine arithmetische Operation berechnet werden darf
250 · 48 − 6
, wobei:
35 · 23
• arithmetische Operationen nur für Variablen benutzt werden dürfen
• in jeder Zeile auf einmal nur eine arithmetische Operation berechnet werden darf
• 1. nur Floats benutzt werden dürfen
2. nur Floats benutzt werden dürfen aber ein gerundetes Ergebnis erwartet wird
3. nur Integers benutzt werden dürfen
(c) Im interaktiven Modus von Python berechne:
(d) Im interaktiven Modus von Python erzeuge eine Variable, die die Zeichenkette Hello world!!!
enthält.
Dabei muss jedes Zeichen dieser Zeichenkette durch sein ASCII-Zeichenkode eingegeben werden.
Aufgabe 3: Integer vs. Float
(a) Beantworte die folgenden Fragen, ohne den Python-Interpreter zu nutzen. Überprüfe dein Ergebnis anschließend, in dem du die Terme vom Interpreter berechnen lässt.
1.
2.
3.
4.
Ist (3 ∗ 12) + 15 in Python dasselbe wie 3 ∗ 12 + 15?
Ist 21/7 in Python dasselbe wie 21.0/7.0?
Ist (20/3) ∗ 3 + 1 == 21?
Wie ist es mit (20//3) ∗ 3.0 + 1.0 == 21? Warum?
(b) Gegeben seien zwei Integer-Variablen x und y. Überlege dir, wie man mit den sechs Grundrechenarten herausfinden kann, ob sich x//y von bei der Berechnung von x/y unterscheidet.
(c)
1. Berechne den Wahrheitswert von (True or False) == not (not True and not False).
2. Ersetze auf beiden Seiten des Vergleichs True durch False.
3. Ersetze auf beiden Seiten des Vergleichs False durch True.
Page 2
4. Überlege, wieso das Ergebnis so sein könnte, wie es ist. Die Vorlesung von gestern könnte
dabei hilfreich sein.
(d)
1. Lege eine Variable test an, und weise ihr den Wert 11 zu.
2. Teile test durch 2, und weise das Ergebnis wiederum test zu.
3. Führe diesen Schritt einige (6-7) Male durch und überprüfe den Wert von test. Macht das
Ergebnis Sinn?
4. Wiederhole die bisherigen Schritte, nachdem du test den Wert 11.0 zugewiesen hast.
Aufgabe 4: Zahlentrick
Es gibt einen Zahlentrick, der folgendermaßen funktioniert:
Man bittet jemanden, sich eine einstellige Zahl auszudenken. Dann soll er zu dieser Zahl noch einmal
dieselbe Zahl addieren. Danach soll die 10 hinzuaddiert werden und durch 2 geteilt werden. Schließlich
wird noch die gedachte Zahl abgezogen.
Egal, welche Zahl ausgedacht wurde - das Ergebnis ist immer die 5.
Um dies zu überprüfen, schreibe ein Programm, das eine einstellige Zahl als Eingabe bekommt und
führe genau diese Rechenschritte mit dieser Zahl aus. Gib das Ergebnis aus.
Aufgabe 5: Boolesche Ausdrücke
Weise den Variablen im folgenden Python-Programm Werte zu, sodass folgende Sätze auf der Konsole
ausgegeben werden:
1
2
3
4
5
6
7
#!/usr/bin/env python
# encoding: utf-8
def main():
bauer = True
koenig = False
gewaehlt = False
streichholz = False
8
9
10
11
12
13
14
15
16
17
18
19
if bauer and koenig:
print u"Seid ihr der König?"
if bauer and koenig and not gewaehlt:
print u"Ich hab’ euch nicht gewählt!"
else:
if bauer and streichholz:
print u"Wir haben eine Hexe gefunden."
print u"Dürfen wir sie verbrennen?"
else:
if bauer:
print u"Hilfe hilfe ich werde unterdrückt!"
20
21
22
if __name__ == ’__main__’:
main()
(a) Seid ihr der König? Ich hab’ euch nicht gewählt!
(b) Seid ihr der König? Wir haben eine Hexe gefunden. Dürfen wir sie verbrennen?
Viel Erfolg!
Page 3
Herunterladen