Mehrere Buchstaben Indizieren

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
SerBlack
User
Beiträge: 41
Registriert: Freitag 31. März 2017, 11:45

Hallo, wollte etwas testen und so eine "eigene" Sprache schreiben
Lernen.txt:
[codebox=text file=Unbenannt.txt]HItefibtlksnvapeugdukqmrxm[/code]

Und ich will, das jede 2. Buchstabe ausgegeben wird:

Code: Alles auswählen

datei = "C:\\Users\\***\\Pythontest\\lernen.txt"

with open( datei ) as eingabe:
    for zeile in eingabe:
        print(zeile[1,3,5,7,9,11,13,15]) 
(Man fängt ja mit 0 an)
Aber das funktioniert nicht, also man kann mehrere Buchstaben nicht Indizieren und es wäre zu aufwendig für jeden Buchstabe ein extra print zu machen.
Als Error kommt: TypeError: string indices must be integers
Zizibee
User
Beiträge: 229
Registriert: Donnerstag 12. April 2007, 08:36

Und schon wieder hast du ein tolles Beispiel für eine for-Schleife :D
(Das ist übrigens auch die Lösung deiner Frage: eine for-Schleife)
BlackJack

Oder man schaut sich die „slice“-Syntax an und spart sich damit die Schleife. Wobei weder 'Htfblsvpudkmx' noch 'Ieitknaeguqrm' irgendwie Sinn machen‽
SerBlack
User
Beiträge: 41
Registriert: Freitag 31. März 2017, 11:45

Ich habe mich schlau gemacht und das hier geschrieben (was aber irgendwie nicht funktioniert)

Code: Alles auswählen

word = 'Ithsr shelibd dtulmym'
word[0]
Liffi
User
Beiträge: 153
Registriert: Montag 1. Januar 2007, 17:23

SerBlack hat geschrieben:Ich habe mich schlau gemacht und das hier geschrieben (was aber irgendwie nicht funktioniert)

Code: Alles auswählen

word = 'Ithsr shelibd dtulmym'
word[0]
Das gibt 'I' aus. Funktioniert doch wunderbar.
Vielleicht möchtest du aber word[::2] machen. Aber das wäre kein netter Satz.
Zuletzt geändert von Liffi am Mittwoch 5. April 2017, 08:25, insgesamt 1-mal geändert.
Sirius3
User
Beiträge: 17747
Registriert: Sonntag 21. Oktober 2012, 17:20

@SerBlack: was erwartest Du denn, was passieren soll und wie weicht das Ergebnis, das Du siehst von dem was Du erwartest ab?
SerBlack
User
Beiträge: 41
Registriert: Freitag 31. März 2017, 11:45

Bei mir kommt: Enter a 4-by-4 matrix row 0:
Ich erwarte, das es 'I' ausgibt.
Liffi
User
Beiträge: 153
Registriert: Montag 1. Januar 2007, 17:23

SerBlack hat geschrieben:Bei mir kommt: Enter a 4-by-4 matrix row 0:
Ich erwarte, das es 'I' ausgibt.
Die obigen beiden Zeilen sind das einzige im ganzen Skript?
Dann stimmt was bei dir nicht.

EDIT: Mein Tipp: Du führst das falsche Skript aus.
SerBlack
User
Beiträge: 41
Registriert: Freitag 31. März 2017, 11:45

Was meinst du mit falschen Script?
BlackJack

@SerBlack: Nicht das richtige. Also ein anderes als das was Du hier gezeigt hast, denn ganz offensichtlich kommt da der ausgegebene Text gar nicht drin vor.
SerBlack
User
Beiträge: 41
Registriert: Freitag 31. März 2017, 11:45

Ich verstehe nicht, was ihr meint. Habe das mal versucht funktioniert nicht;

Code: Alles auswählen

with open( datei ) as eingabe:
    for zeile in eingabe:
        print(zeile[1] + [2])
TypeError: must be str, not list
Liffi
User
Beiträge: 153
Registriert: Montag 1. Januar 2007, 17:23

SerBlack hat geschrieben:Was meinst du mit falschen Script?
Nehmen wir an, du hättest die beiden Zeilen von oben in der Datei a.py. Du führst aber 'python b.py' aus.

Probier die beiden Zeilen mal im Interpreter aus.
Benutzeravatar
snafu
User
Beiträge: 6740
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Liffi hat die Lösung doch schon genannt...

Du bist eh komisch: Suchst dir irgendwelche Programmieraufgaben raus ohne auch nur eine Ahnung von den Grundlagen der Python-Programmierung zu haben. Welchen Sinn hat das bitte? Anhand von fertigen Lösungen das Programmieren zu lernen? Hast du dich überhaupt schon intensiver mit meiner Lösung aus dem anderen Thread beschäftigt (abgesehen von der Erkenntnis, dass sie dein Problem löst)?

EDIT:
Vielleicht bist du ja ein Charakter, der am liebsten alles auf einmal machen will und ungern nach Plan vorgeht. So ging es mir anfangs auch. Aber das führt zu nichts. Entweder du liest dich direkt in die offizielle englischsprachige Doku ein. Da muss man anfangs viel im Onlinewörterbuch (z.B. dict.cc) nachschlagen. Oder du benutzt das deutsche Python-Tutorial. Das ist eine Übersetzung den offiziellen Tutorials. Wenn dir die Einführung zu langatmig ist, kannst du IMHO auch direkt mit Kapitel 3 anfangen. Ansonsten wird das nichts. Wir sind im Forum zwar nett und geduldig, aber von zuviel stupiden Fragen sind auch wir irgendwann genervt. Nichts für ungut... ;)
Antworten