String verarbeiten, erster und letzter Buchstabe

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.
username
User
Beiträge: 2
Registriert: Samstag 2. Mai 2009, 20:10

Samstag 2. Mai 2009, 20:34

Hallo zusammen,

ich mache gerade meine ersten Schritte mit Python und hab nun folgendes Problem: Ich möchte aus einem beliebigen Wort den Anfangs- und Endbuchstaben auslesen.

Code: Alles auswählen

name = "Egal"
width_str = len(name)
ges = name[0]
ges_last = name[width_str]
print " Der erste Buchstabe ist ", ges, ",der letzte Bustabe ist ", ges_last, "."
Das eigentliche Problem kommt glaub ich in der 4. Zeile auf, ich bin dankbar für jede Hilfe.

Gruß username
Benutzeravatar
Mawilo
User
Beiträge: 446
Registriert: Sonntag 22. Februar 2004, 10:58
Wohnort: Sachsen
Kontaktdaten:

Samstag 2. Mai 2009, 20:42

Das letzte Element kannst du mit -1 ausgeben

Code: Alles auswählen

name = "Egal"
width_str = len(name)
ges = name[0]
ges_last = name[-1]
print " Der erste Buchstabe ist ", ges, ",der letzte Buchstabe ist ", ges_last, ".

Mawilo
Zuletzt geändert von Mawilo am Samstag 2. Mai 2009, 20:44, insgesamt 1-mal geändert.
BlackJack

Samstag 2. Mai 2009, 20:42

Versuch's doch mal mit -1 als Index.
Nocta
User
Beiträge: 290
Registriert: Freitag 22. Juni 2007, 14:13

Samstag 2. Mai 2009, 20:42

name[width_str] wird nicht klappen, da dann ein IndexError kommt.
Die länge ist immer um 1 größer als die Anzahl der Elemente einer Liste/eines Strings, da die Indizes bei 0 anfangen und nicht bei 1.
Für den letzten Buchstaben müsste es also name[width_str-1] heißen und für den ersten name[0].
Allerdings bietet sich da auch an, name[-1] zu schreiben.
Und man sollte Variablen keinen Variablentyp (zb width_str) als Namen anhängen oder so, da Python keine statische Programmiersprache ist und sich dies auch einfach mal ändern kann und es teilweise auch irgendwo irrelevant ist.
username
User
Beiträge: 2
Registriert: Samstag 2. Mai 2009, 20:10

Samstag 2. Mai 2009, 20:52

Vielen Dank für die vielen schnellen Antworten, dass hab ich echt nicht erwartet! Ich hab es jetzt so gelöst wie empfohlen:

Code: Alles auswählen

name = "Egal"
width_str = len(name)
ges = name[0]
ges_last = name[-1]
print " Der erste Buchstabe ist ", ges, ",der letzte Bustabe ist ", ges_last, ".
Gruß username
Benutzeravatar
cofi
Moderator
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Samstag 2. Mai 2009, 22:33

Soo und nu ohne den unnötigen Kram und zukunftskompatibel(tm) ;)

Code: Alles auswählen

name = "Egal"
print "Der erste Buchstabe ist: {first}, der letzte aber ist: {last}".format(first=name[0], last=name[-1])
busfahrer
User
Beiträge: 111
Registriert: Donnerstag 9. Oktober 2008, 17:42

Samstag 2. Mai 2009, 23:22

Und für schreibfaule,die um jeden Buchstaben kämpfen :wink:

Code: Alles auswählen

name = "Egal"
print "Der erste Buchstabe ist {0} und der letzte ist {1}".format(name[0], name[-1])
Gruß...busfahrer
Alles wird gut ;-)
Nocta
User
Beiträge: 290
Registriert: Freitag 22. Juni 2007, 14:13

Samstag 2. Mai 2009, 23:23

Naja das str hast/hattest du noch im Namen drin ;) Verursacht natürlich keinen Fehler oder sowas aber das hat eben mit dem Programmierstil in Python zu tun.
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Samstag 2. Mai 2009, 23:37

busfahrer hat geschrieben:Und für schreibfaule,die um jeden Buchstaben kämpfen :wink:
... gibt es ab Python 3.1 auch

Code: Alles auswählen

name = "Egal"
print "Der erste Buchstabe ist {} und der letzte ist {}".format(name[0], name[-1])
My god, it's full of CARs! | Leonidasvoice vs Modvoice
bremer
User
Beiträge: 109
Registriert: Sonntag 25. Mai 2008, 00:13

Sonntag 3. Mai 2009, 02:34

?

Code: Alles auswählen

s = "string"
print("Der erste Buchstabe ist", s[0], "und der letzte ist", s[-1] + ".")
Benutzeravatar
Dill
User
Beiträge: 470
Registriert: Mittwoch 10. Januar 2007, 14:52
Wohnort: Köln

Sonntag 3. Mai 2009, 10:18

Code: Alles auswählen

"geht %s nicht mehr in zukunft?" % "das"
http://www.kinderpornos.info
BlackJack

Sonntag 3. Mai 2009, 10:24

Doch das geht weiterhin.
Benutzeravatar
hendrikS
User
Beiträge: 420
Registriert: Mittwoch 24. Dezember 2008, 22:44
Wohnort: Leipzig

Sonntag 3. Mai 2009, 10:55

Wozu dann eigentlich das format attribute. Ist das nicht wieder was, was eigentlich kein Mensch braucht?
Benutzeravatar
Dill
User
Beiträge: 470
Registriert: Mittwoch 10. Januar 2007, 14:52
Wohnort: Köln

Sonntag 3. Mai 2009, 11:01

na dann:

Code: Alles auswählen

s = "string" 
print("Der erste Buchstabe ist %s und der letzte ist %s." % (s[0], s[-1]))
http://www.kinderpornos.info
DasIch
User
Beiträge: 2452
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Sonntag 3. Mai 2009, 11:05

hendrikS hat geschrieben:Wozu dann eigentlich das format attribute. Ist das nicht wieder was, was eigentlich kein Mensch braucht?
Du findest es also elegant den Modulo Operator zu missbrauchen?
Antworten