String find und Position finden
Ohne deine konkreten strings und Code zu kennen kann man nicht wissen was da falsch läuft. Mein Beispiel aber ganz bestimmt nicht, denn das find tut wie es tut. Das addiert nicht magisch ne eins drauf. Bist du sicher das du nicht Offset ausgibst?
Also wird mit den [] eine Liste erstellt, ok, warte bis es im Buch kommt.
Aber wenn ich mit print(offset) die gesuchten Positionen ausgebe, wird 9 und 14 angeben und die sind falsch.
Wie du eben selber sagtest, die Positionen fangen mit 0 und nicht mit 1 an und mit 0 angefangen, sind es 8 und 13, genau wie im Buch angegeben.
Aber danke für deine Mühe und nochmals, will hier keinen nerven und bin für Hilfe dankbar.
Aber wenn ich mit print(offset) die gesuchten Positionen ausgebe, wird 9 und 14 angeben und die sind falsch.
Wie du eben selber sagtest, die Positionen fangen mit 0 und nicht mit 1 an und mit 0 angefangen, sind es 8 und 13, genau wie im Buch angegeben.
Aber danke für deine Mühe und nochmals, will hier keinen nerven und bin für Hilfe dankbar.
-
- User
- Beiträge: 1
- Registriert: Samstag 18. April 2020, 20:23
@andreasp meine Antwort kommt etwas spät, jedoch ist es für die Anderen vielleicht hilfreich. Hier ein Beispielcode, wie du "find" in einer Schleife benutzen und die Positionen von "a" ausgeben kannst:
Code: Alles auswählen
x = "baabaaabaaaaab"
z = 0
for i in x:
if i == "a":
u = x.find("a", z)
print(u)
z+=1
- __blackjack__
- User
- Beiträge: 13080
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@viktor-did: Da wird nicht `find()` benutzt. Du kannst da offensichtlich auch einfach ``u = z`` schreiben, denn `find()` sucht ja nicht wirklich wenn es immer so aufgerufen wird, das genau an dem Offset auch garantiert ein "a" steht. Und dann kann man sich das `u` auch sparen und einfach gleich `z` ausgeben.
Die Namen sind alle schlecht, aber `i` ist besonders schlecht gewählt. Bei einer Laufvariablen mit dem Namen `i` hat man ganze Zahlen. Hat man keine ganzen Zahlen, nennt man die ganz sicher nicht `i`. Jeder Programmierer erwartet da, fast unabhängig von der Programmiersprache, eine ganze Zahl.
Statt `z` vor der Schleife zu definieren und dann in der Schleife manuell hoch zu zählen, würde man die `enumerate()`-Funktion verwenden:
Die Namen sind alle schlecht, aber `i` ist besonders schlecht gewählt. Bei einer Laufvariablen mit dem Namen `i` hat man ganze Zahlen. Hat man keine ganzen Zahlen, nennt man die ganz sicher nicht `i`. Jeder Programmierer erwartet da, fast unabhängig von der Programmiersprache, eine ganze Zahl.
Statt `z` vor der Schleife zu definieren und dann in der Schleife manuell hoch zu zählen, würde man die `enumerate()`-Funktion verwenden:
Code: Alles auswählen
text = "baabaaabaaaaab"
for index, character in enumerate(text):
if character == "a":
print(index)
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman