115
4.15
Lösungen
Aufgabe 6
Entwickeln Sie ein kleines Programm zum Aufbau einer Telefonliste. Eingegeben werden
jeweils Name und Telefonnummer von drei Personen. Anschließend werden die Daten aus-
gegeben. Beispiel:
Hinweis: Verwenden Sie eine Liste aus Tupeln. Gehen Sie von einer leeren Liste
[] aus, die
Sie bei jeder Eingabe verlängern.
4.15 Lösungen
Lösung 1
Bitte geben Sie Name und Telefonnummer ein.
Name: Tobias
Telefonnummer: 23998
Name: Stephanie
Telefonnummer: 89774
Name: Tim
Telefonnummer: 23445
Telefonliste:
Tobias 23998
Stephanie 89774
Tim 23445
Wirklichkeit Datentyp Beispielliteral
Durchmesser von Atomen Gleitkommazahl (
float) 0.00000000000123
Pflanzennamen Zeichenkette (str) 'Tulpe'
Namen der Teilnehmer eines
Wettlaufs
Liste aus Zeichenketten
(
list) oder Menge (set)
['Leonie', 'Stephanie',
'Alexandra']
Name, Vorname und Alter einer
Person
Tupel mit drei Objekten
(
tuple)
('Heck','Mark', 23)
Name, Vorname und Alter der
Teilnehmer eines Wettlaufs
Liste von Tupeln (list) [('Heck','Mark', 23),
('Kurz', 'Elli', 21),
('Le', 'Tim', 19)]
Spielstand in einem Fußballspiel
(z.B. 1:0)
Tupel aus zwei ganzen
Zahlen (
tuple)
(1,0)
Tabelle, in der zu Elementsym-
bolen (z.B. H) die englischen und
deutschen Namen der chemi-
schen Elemente vermerkt sind
(z.B. hydrogen, Wasserstoff)
Dictionary mit Symbolen
als Schlüssel und Liste
mit englischen und deut-
schen Namen als Wert
{'H':['hydrogen',
'Wasserstoff'],
'O':['oxygen',
'Sauerstoff']}
Kapitel 4
Standard-Datentypen
116
Lösung 2
Lösung 3
Literal Ergebnis
2e+1j 20j (imaginäres Literal)
1.000e+0.2 Ungültig, da Exponent keine ganze Zahl ist.
0o237 159 (Oktalzahl)
0o238 Ungültig, da 8 keine Oktalziffer ist.
0x123 291 (Hexadezimalzahl)
00x123 Ungültig, denn Literale für Hexadezimalzahlen dürfen nur eine
führende Null besitzen.
''zwei'' Ungültig, denn vor und hinter zwei stehen jeweils zwei Hoch-
kommata
'' (an Stelle eines doppelten Anführungszeichens ").
"Körpergröße" ltig
b"Körpergröße" Ungültig, weil ö und ß keine ASCII-Zeichen sind.
00023e001 230.0 (Gültiges Literal vom Typ float. Mantisse und Exponent
dürfen führende Nullen enthalten und werden als Dezimalzahlen
interpretiert.)
(1; 2; 3) Ungültig, weil in einem Tupel (runde Klammern) die Items durch
Kommas getrennt werden müssen.
Ausdruck Ergebnis der Auswertung
10%7
3
1 + 1.0 2.0 (Das Ergebnis ist vom Typ float.)
5 // 2.0 2.0 (ganzzahlige Division, Ergebnistyp float)
3 * (1.0/2)
1.5
int("10")*0o2
20
int("10", 2) * 2 4
(Die Zahl 10 wird als Binärzahl interpretiert.)
0x10 + 0x20 48 (Hexadezimalzahl 0x30)
(1, 2) + (3, 4)
(1, 2, 3, 4)
[1, 2] + (3, 4)
Ungültig, denn Sequenzen unterschiedlichen Typs können
nicht konkateniert werden.
[1, 2] + [(3, 4)]
[1, 2, (3, 4)]
'2' + '3' '23' (Konkatenation zweier Strings)
(1, 2) + (3) Ungültig, weil (3) kein Tupel, sondern eine Zahl in Klam-
mern ist; gültig ist der Ausdruck
(1, 2) + (3,).
float(1//2) 0.0 (Ergebnis der ganzzahligen Division ist null.)
117
4.15
Lösungen
Lösung 4
Protokoll eines Programmlaufs:
str (2+3.0)
'5.0'
str(complex(1))
'(1+0j)'
complex(2//3)
0j
int(complex(1))
Ungültig, da die komplexe Zahl, die von complex(1)
zurückgegeben wird, nicht in eine ganze Zahl konvertiert
werden kann.
list(str(12345))
['1', '2', '3', '4', '5']
# isbn.py
# Berechnung der ISBN-Prüfziffer
eingabe = input("Geben Sie eine neunstellige ganze Zahl ein: ")
nummer = int(eingabe)
z9 = nummer%10
nummer = nummer//10
z8 = nummer%10
nummer = nummer//10
z7 = nummer%10
nummer = nummer//10
z6 = nummer%10
nummer = nummer//10
z5 = nummer%10
nummer = nummer//10
z4 = nummer%10
nummer = nummer//10
z3 = nummer%10
nummer = nummer//10
z2 = nummer%10
nummer = nummer//10
z1 = nummer
summe = z1+2*z2+3*z3+4*z4+5*z5+6*z6+7*z7+8*z8+9*z9
pruefziffer = summe%11
print("Prüfziffer:", pruefziffer)
Geben Sie eine neunstellige ganze Zahl ein: 382660423
Pruefziffer: 7
Ausdruck Ergebnis der Auswertung
Kapitel 4
Standard-Datentypen
118
Lösung 5
Lösung 6
# charts.py
print("Bitte geben Sie die ersten Titel der Charts ein!")
charts = []
titel = input("Titel: ")
charts += [titel]
titel = input("Titel: ")
charts += [titel]
titel = input("Titel: ")
charts += [titel]
print
print("Hier sind die ersten drei Titel der Charts:")
print("Platz 1:", charts[0])
print("Platz 2:", charts[1])
print("Platz 3:", charts[2])
print() # leere Zeile
input("Ende mit <ENTER>")
# telefon.py
print("Bitte geben Sie Name und Telefonnummer ein.")
liste = []
name = input("Name: ")
tel = input("Telefonnummer: ")
liste = liste + [(name, tel)]
name = input("Name: ")
tel = input("Telefonnummer: ")
liste = liste + [(name, tel)]
name = input("Name: ")
tel = input("Telefonnummer: ")
liste = liste + [(name, tel)]
print()
print("Telefonliste:")
print(liste[0][0], liste[0][1])
print(liste[1][0], liste[1][1])
print(liste[2][0], liste[2][1])

Get Python 3 - Lernen und professionell anwenden now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.