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.
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.
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.
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.
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.
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.
hendrikS hat geschrieben:Wozu dann eigentlich das format attribute.
Naja, weil da einige dagegen waren die printf-Syntax rauszunehmen (das war ursprünglich geplant). Generell ist aber das neue Format idR. zu bevorzugen. Ist ja auch klarer.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
DasIch hat geschrieben:
Du findest es also elegant den Modulo Operator zu missbrauchen?
Das ist doch kein Mißbrauch. % ist halt in Zusammenhang mit verschiedenen Typen auch verschieden anzuwenden.
Genauso bei +. Summe oder Konkatinieren. Zwei paar Schuhe. Oder willst Du Strings/Listen zukünftig nicht mehr mit + verbinden können dürfen.
hendrikS hat geschrieben:Das ist doch kein Mißbrauch. % ist halt in Zusammenhang mit verschiedenen Typen auch verschieden anzuwenden.
Genauso bei +. Summe oder Konkatinieren. Zwei paar Schuhe. Oder willst Du Strings/Listen zukünftig nicht mehr mit + verbinden können dürfen.
Doch ist es. Unter einer Listenaddition würde man das Verbinden von Listen verstehen (oder eventuell eine komponentenweise Addition), aber was wäre semantisch der Rest der Division von einem String durch einen String oder ein Tupel?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Exakt dass ist es. Wenn ich Sequenzen mit + verbinden kann ist dass durchaus noch logisch und nachvollziehbar aber was bitteschön ergibt Modulo für Strings und wenn Modulo geht was bewirkt dann erst eine Division?
Hier wurde einfach der nächst beste Operator genommen und missbraucht.