Problem Tupelbeispiel aus dem Tutorial "A Byte of Pytho

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
uwe_holst
User
Beiträge: 12
Registriert: Samstag 26. Februar 2005, 06:25

Moin moin,

ich nutze Python 2.5 unter Win XP und die deutsche Version des Tutorials.

Folgendes Beispiel wird dort genutzt:

Code: Alles auswählen

zoo = ('Wolf', 'Elefant', 'Pinguin')
print u"Die Zahl der Tiere im Zoo ist:", len(zoo)
neuer_zoo = ('Affe','Delfin','Schaf', zoo)
print "Die Zahl der Tiere im neuen Zoo ist:", len(neuer_zoo)
Das Print Statement aus Zeile 2 gibt mir korrekt die Anzahl 3 zurück. Das Statement aus der letzten Zeile aber die Anzahl 4. Nach meinem Verständnis müßte dort doch eigentlich 6 zurückkommen. Verstehe ich etwas falsch oder habe ich einen Fehler im Code?

Gruss - Uwe
Zuletzt geändert von uwe_holst am Mittwoch 5. September 2007, 19:01, insgesamt 1-mal geändert.
schlangenbeschwörer
User
Beiträge: 419
Registriert: Sonntag 3. September 2006, 15:11
Wohnort: in den weiten von NRW
Kontaktdaten:

Code: Alles auswählen

neuer_zoo = ('Affe',                                 # 1
            'Delfin',                                # 2
            'Schaf',                                 # 3
            ('Wolf', 'Elefant', 'Pinguin'))          # 4
Benutzeravatar
keppla
User
Beiträge: 483
Registriert: Montag 31. Oktober 2005, 00:12

wenn das wirklich 1:1 das Beispiel aus dem Buch ist, sollte man dem Autor mal schreiben, dass er da einen Fehler gemacht hat.

allerdings könnte ich mir vorstellen, das die Zeile

Code: Alles auswählen

neuer_zoo = ('Affe','Delfin','Schaf', zoo)
eigentlich

Code: Alles auswählen

neuer_zoo = ('Affe','Delfin','Schaf') + zoo
lauten sollte, das würde nämlich genau zum gewünschten verhalten passen.
uwe_holst
User
Beiträge: 12
Registriert: Samstag 26. Februar 2005, 06:25

Hm, da

http://swaroopch.info/text/Byte_of_Pyth ... or_1_items

ist das englische Original, und da schreibt er auch textuell, dass was zum Code paßt. In der deutschen Übersetzung verstehe ich das etwas anders.

Danke für die Hinweise, so macht Lernen Spaß :)

Uwe
pyStyler
User
Beiträge: 311
Registriert: Montag 12. Juni 2006, 14:24

Hallo,
also ich würde sagen, dass sich da kein Fehler eingeschlichen hat.

Code: Alles auswählen

>>> zoo = ('Wolf', 'Elefant', 'Pinguin')
>>> print u"Die Zahl der Tiere im Zoo ist:", len(zoo)
Die Zahl der Tiere im Zoo ist: 3
>>> neuer_zoo = ('Affe','Delfin','Schaf', zoo)
>>> print "Die Zahl der Tiere im neuen Zoo ist:", len(neuer_zoo)
Die Zahl der Tiere im neuen Zoo ist: 4
>>> print neuer_zoo[3]
('Wolf', 'Elefant', 'Pinguin')
>>> 

Gruss
pyStyler
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

pyStyler hat geschrieben:also ich würde sagen, dass sich da kein Fehler eingeschlichen hat.
Natürlich ist das Programm korrekt, weil ``neuer_zoo`` wie man es dreht und wendet nun mal vier Elemente hat. Kann sein, dass die deutsche Übersetzung das nicht explizit klarstellt, aber es ist nun mal so.

Das ein Tupel in ein anderes entpackt wird, hätte ich eher bei dem Code ``neuer_zoo = ('Affe','Delfin','Schaf', *zoo)`` erwartet, aber dieser ist kein gültiges Python.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten