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.
uwe_holst
User
Beiträge: 12
Registriert: Samstag 26. Februar 2005, 06:25
Kontaktdaten:

Problem Tupelbeispiel aus dem Tutorial "A Byte of Pytho

Beitragvon uwe_holst » Mittwoch 5. September 2007, 17:14

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:

Beitragvon schlangenbeschwörer » Mittwoch 5. September 2007, 17:20

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

Beitragvon keppla » Mittwoch 5. September 2007, 17:47

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
Kontaktdaten:

A Byte of Python

Beitragvon uwe_holst » Mittwoch 5. September 2007, 18:55

Hm, da

http://swaroopch.info/text/Byte_of_Python:Data_Structures#Tuple_with_0_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

Beitragvon pyStyler » Mittwoch 5. September 2007, 20:35

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
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Mittwoch 5. September 2007, 20:40

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 Modvoice

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder