frage zu strings

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
blutigeranfaenger
User
Beiträge: 63
Registriert: Dienstag 4. März 2014, 12:04

Hallo zusammen,
ich habe eine Frage zu Strings.
Und zwar geht es um einen längeren Text, in den nur einige wenige Stichworte als Variablen eingefügt werden sollen.
Ich kriege das zwar hin, finde es aber sehr umständlich.
Gibt es nicht eine elgantere Lösung, die Variable name in dem String als Variable kenntlich zu machen?
Sowas wie das $-Zeichen bei Perl suche ich!
Hier mein Dummy-Beispiel:

Code: Alles auswählen

#!/usr/bin/env python3
name = "Hans"
text = name+" im Glück.\n Was "+name+" nicht lernte, lernt "+name+"chen nimmermehr!\n"
print(text)
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Ja, nennt sich String formatting:

Code: Alles auswählen

In [1]: name = "Hans"

In [2]: "%(name)s im Glueck.\n Was %(name)s nicht lernte, lernt %(name)schen nimmermehr!\n" % {'name': name}
Out[2]: 'Hans im Glueck.\n Was Hans nicht lernte, lernt Hanschen nimmermehr!\n'

In [3]: # oder

In [4]: "%(name)s im Glueck.\n Was %(name)s nicht lernte, lernt %(name)schen nimmermehr!\n" % locals()
Out[4]: 'Hans im Glueck.\n Was Hans nicht lernte, lernt Hanschen nimmermehr!\n'
BlackJack

@blutigeranfaenger: Mit welchem Tutorial arbeitest Du denn das keine Zeichenkettenformatierun mittels `format()`-Methode oder ``%``-Operator zeigt? Ansonsten gäbe es noch `string.Template`, was aber kaum benutzt wird.
blutigeranfaenger
User
Beiträge: 63
Registriert: Dienstag 4. März 2014, 12:04

Hallo danke für die Tipps!
Ich habe meine spärlichen Python-Kenntnisse aus einem Bibliotheksbuch (ich glaube von Weigand) und aus dem Netz.
Das Bibliotheksbuch habe ich nicht mehr griffbereit. Da stand was von String-Formatierung.
Damals hatte ich es noch nicht recht begriffen.
Muss mich mal da einarbeiten.
Benutzeravatar
darktrym
User
Beiträge: 784
Registriert: Freitag 24. April 2009, 09:26

Ist nicht zufällig das ge-packt Buch?
„gcc finds bugs in Linux, NetBSD finds bugs in gcc.“[Michael Dexter, Systems 2008]
Bitbucket, Github
Antworten