Seite 1 von 1

Problem Tupelbeispiel aus dem Tutorial "A Byte of Pytho

Verfasst: Mittwoch 5. September 2007, 17:14
von uwe_holst
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

Verfasst: Mittwoch 5. September 2007, 17:20
von schlangenbeschwörer

Code: Alles auswählen

neuer_zoo = ('Affe',                                 # 1
            'Delfin',                                # 2
            'Schaf',                                 # 3
            ('Wolf', 'Elefant', 'Pinguin'))          # 4

Verfasst: Mittwoch 5. September 2007, 17:47
von keppla
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.

A Byte of Python

Verfasst: Mittwoch 5. September 2007, 18:55
von uwe_holst
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

Verfasst: Mittwoch 5. September 2007, 20:35
von pyStyler
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

Verfasst: Mittwoch 5. September 2007, 20:40
von Leonidas
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.