Zeilen nummerieren

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, ich fange gerade mit Python an, doch ich komme nicht weiter:
Wie nummeriert man Zeilen?
Bsp:
print("Hello Wik")
print("hjdsds")

und später soll es so aussehen: (ausgabe)
1. Hello Wik
2. hjdsds

Danke im Vorraus.
Sirius3
User
Beiträge: 18299
Registriert: Sonntag 21. Oktober 2012, 17:20

@SerBlack: na so:

Code: Alles auswählen

print("1. Hello Wik")
print("2. hjdsds")
wenn Du aber meinst, dass Du eine Liste mit Zeilen hast, die Du nummeriert haben willst, dann gibt es dafür enumerate:

Code: Alles auswählen

zeilen = ["Hello Wik", "hjdsds"]
for nr, zeile in enumerate(zeilen, start=1):
    print("{}. {}".format(nr, zeile))
SerBlack
User
Beiträge: 41
Registriert: Freitag 31. März 2017, 11:45

Code: Alles auswählen

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


with open( datei ) as eingabe:
    for nr,index,zeile in enumerate( eingabe, start=1):
        print("{}. {}".format(nr, zeile))   
            inhalt = zeile.split(" ")
            if len( inhalt ) > 1 :
                print( "Da ist ein Leerzeichen" )
            inhalt = zeile.split("\t")
            if len( inhalt ) > 1:
                print( "Da ist ein Tabulator" )
                print( inhalt )
So sieht mein Code gerade aus, diese Code soll erkennen ob es ein Tabulator oder ein Leerzeichen ist. (also Text)
Und wo soll ich das einfügen wenn ich das nummerieren will? : uebung.txt sieht so aus:
Spalte1 Spalte2 Spalte3
Zeile2 Zeile2 Zeile2
Test hu

und wenn ich dieses Code ausgebe kommt:
inhalt = zeile.split(" ")
^
IndentationError: unexpected indent
Zuletzt geändert von Anonymous am Freitag 31. März 2017, 13:26, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Codebox-Tags gesetzt.
BlackJack

@SerBlack: Die ``for``-Schleife sieht nicht so aus wie von Sirius3 gezeigt und wird zu einer Ausnahme führen.

Die Einrückung ist kaputt. Und zwar so das man raten muss was Du eigentlich meinst.

Das `split()` am Leerzeichen macht keinen Sinn weil das Ergebnis nach dem ``if`` wieder verworfen wird und für einen Test ob ein bestimmtes Zeichen enthalten ist, muss man die Zeichenkette nicht zerlegen, da prüft man einfach mit dem ``in``-Operator ob das Zeichen in der Zeichenkette enthalten ist.
SerBlack
User
Beiträge: 41
Registriert: Freitag 31. März 2017, 11:45

Sry, bin noch ein anfänger. Wie macht man das mit dem "in"- Operator?
BlackJack

@SerBlack: Das ist ein binärer Operator wo rechts und links ein Operand steht, also ``a in b`` und der testet ob `a` in `b` enthalten ist. Bei Zeichenketten bedeutet das ob die Zeichenkette `a` in der Zeichenkette `b` vor kommt.
Antworten