Der kürzeste Weg für fünfzig Sterne

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
mzh
User
Beiträge: 295
Registriert: Dienstag 3. März 2009, 15:27
Wohnort: ZH

Donnerstag 19. März 2009, 15:39

Code: Alles auswählen

print("".join(["*"]*50))
?
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Donnerstag 19. März 2009, 15:42

Code: Alles auswählen

print "*" * 50
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
mzh
User
Beiträge: 295
Registriert: Dienstag 3. März 2009, 15:27
Wohnort: ZH

Donnerstag 19. März 2009, 15:48

Rebecca hat geschrieben:

Code: Alles auswählen

print "*" * 50
ist ein String eine Liste?
DasIch
User
Beiträge: 2452
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Donnerstag 19. März 2009, 15:50

Nein, dann müsste man ja einen Character Datentyp haben wie z.B. Haskell.
mzh
User
Beiträge: 295
Registriert: Dienstag 3. März 2009, 15:27
Wohnort: ZH

Donnerstag 19. März 2009, 15:57

Es findet also auch keine Konvertierung des Strings "*" in eine Liste statt, wenn man

Code: Alles auswählen

"*" * 50
schreibt?
Dh. Strings und Listen können so "vervielfältigt" werden?
Benutzeravatar
snafu
User
Beiträge: 5466
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Donnerstag 19. März 2009, 16:05

mzh hat geschrieben:Strings und Listen können so "vervielfältigt" werden?
Siehst du doch. ;)
shcol (Repo | Doc | PyPi)
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Donnerstag 19. März 2009, 16:06

Das Schöne an Python ist ja: Man kann es einfach und schnell probieren. Einfach den Interpreter starten und eingeben ...

Zu den Fragen: Nein, der String wird nicht konvertiert. Ja, man kann Strings so "vervielfältigen". Und nein, Listen kann man so nicht vervielfältigen, wohl aber deren Inhalt.

Gruß,
Christian
Nocta
User
Beiträge: 290
Registriert: Freitag 22. Juni 2007, 14:13

Donnerstag 19. März 2009, 16:06

Wozu gibt's denn type() um das selbst zu überprüfen?
Übrigens: Ja, man kann Strings so vervielfältigen.
ist ein String eine Liste?
Nein, du könntest aber mal ein Tutorial durcharbeiten ;)
Strings sind in gewisser Weise schon einer Liste recht ähnlich, man kann auch einzelne Elemente des Strings wie die einer Liste ansprechen.
mzh
User
Beiträge: 295
Registriert: Dienstag 3. März 2009, 15:27
Wohnort: ZH

Donnerstag 19. März 2009, 16:15

Wieso ergibt sich bei

Code: Alles auswählen

>>>print(["*"*5].append("d"))
None
?

Und keine Sorge, natürlich ich arbeite an einem Tutorial, ich bin aber trotzdem froh, wenn ich zwischendurch mal eine Unklarheit beseitigen und gleichzeitig ein bisschen die deutschsprachige Python-Community kennenlernen kann.
Benutzeravatar
cofi
Moderator
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Donnerstag 19. März 2009, 16:17

Weil .append keinen Rückgabewert hat -> `None'
Nocta
User
Beiträge: 290
Registriert: Freitag 22. Juni 2007, 14:13

Donnerstag 19. März 2009, 16:24

Allgemein könnte man sagen, dass print() immer den Rückgabewert einer Funktion ausgibt oder, wenn man ein Objekt ausgeben will (also keine Methode oder Eigenschaft/Variable des Objekts), wird immer der Rückgabewert der __str__-Methode des Objekts ausgegeben.
Wenn __str__ nicht existiert wird die Klasse des Objekts und die Speicheradresse (oder was ist das?) ausgegeben.
BlackJack

Donnerstag 19. März 2009, 16:39

`__str__()` existiert immer. Wenn es nicht überschrieben wurde, ruft das `__repr__()` auf, und das wiederrum ist so implementiert, das Typname und ID des Objekts ausgegeben werden.
Nocta
User
Beiträge: 290
Registriert: Freitag 22. Juni 2007, 14:13

Donnerstag 19. März 2009, 16:47

Ah okay, ich habe sowas wie 0x02A1EF08 für eine Speicheradresse oder so gehalten.
Aber das ist einfach nur die ID als Hexadezimalwert.
Edit: Öhm die id ist doch eigentlich die Speicheradresse? Also hatte ich im Prinzip doch recht :p
DasIch
User
Beiträge: 2452
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Donnerstag 19. März 2009, 17:09

Nocta hat geschrieben:Edit: Öhm die id ist doch eigentlich die Speicheradresse? Also hatte ich im Prinzip doch recht :p
Jein. Das ist Implementationsabhängig, CPython macht dass zwar aber bei Jython gibt es soweit ich weiß einfach einen Counter für die `id`s
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Donnerstag 19. März 2009, 17:36

Selbst wenn es eine Adresse wäre, würde das sowieso nicht viel bringen denn eigentlich kann man aus Python heraus nicht auf beliebige Adressen zugreifen. Macht ja auch nicht wirklich Sinn.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Antworten