doppeltes "print" unter "if"

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
Dr. Doofenschmirtz
User
Beiträge: 4
Registriert: Mittwoch 4. März 2015, 20:06

Seit gegrüßt liebe Leut,

ich bin ein Programmierneuling (und das nicht nur in Python), aber folgendes Problem hat selbst einen erfahreneren Pythonprogrammierer vor Rätsel gestellt, obwohl es nur die scheinbaren Grundlagen betrifft.

Innerhalb einer "if"- Funktion habe ich zwei "print"-Aufforderungen untereinander geschrieben. Dies gab mir allerdings eine Fehlermeldung mit folgendem Wortlaut aus: invalid syntax. Darüber wird das "t" des print- Befehls als Fehlerursache markiert. Schreibe ich zwei print Befehle außerhalb der if- Funktion, dann wird das Programm anstandslos ausgeführt.

Selbiges Problem ergibt sich auch wenn einem print Befehl eine input () - Funktion folgt (innerhalb des "if"´s)

Nun, ich weiß dass ich das Problem umgehen könnte, indem ich die Print´s zusammen fasse oder auch in die Klammern der "input" - Fkt. schreibe. Doch ich hab die Befürchtung, dass diese Eigenart sich auch in anderen Bereichen manifestiert, über die ich in Zukunft stolpern könnte...

Eine pragmatische Hilfestellung eurerseits wäre mir willkommen.

Danke, Dr.D
BlackJack

@Dr. Doofenschmirtz: Ohne den Quelltext zu sehen kann man da nur raten. Ich rate mal das Du Tabs und Leerzeichen beim Einrücken gemischt hast. Konvention ist mit vier Leerzeichen pro Ebene einzurücken und Tabulatorzeichen gar nicht zu verwenden.
Dr. Doofenschmirtz
User
Beiträge: 4
Registriert: Mittwoch 4. März 2015, 20:06

Danke erstmal für die schnelle Antwort.

Deinem Anraten zufolge habe ich aus meinem kleinen Quelltext sämtliche Tab´s entfernt und durch je 4 Leerzeichen ersetzt.

Allerdings wird mir jetzt eine Meldung vorgesetzt, welch in etwa das beschreibt, was du mir eben als Mögliche Ursache geschildert hast:"inconsistent use of taps and spaces in indentation

Hier ist der aktuelle Quellcode:

Code: Alles auswählen

print ("Hey du")

print ("Ich heisse Gunter")

fisch = input ("Wie heisst du? ")

if fisch == "Elvis":
    print ("tachchen Elvis")
	print ("wie gehts weiter")

else :
    print ("geh weg")
Zuletzt geändert von Anonymous am Mittwoch 4. März 2015, 21:17, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Code-Tags gesetzt.
Dr. Doofenschmirtz
User
Beiträge: 4
Registriert: Mittwoch 4. März 2015, 20:06

Ich habe eines der print´s in der "if"-Fkt auch mal auskommentiert, und auch das hat das Programm wieder zum laufen gebracht. Ich schätze daß es hier wirklich ein Problem mit der Ausgabe ist.
BlackJack

@Dr. Doofenschmirtz: Da ist ganz offensichtlich ein Problem mit der Einrückung.
Dr. Doofenschmirtz
User
Beiträge: 4
Registriert: Mittwoch 4. März 2015, 20:06

Das Problem ist gelöst... und wenn ich nicht so ungelenkig wäre, würd ich mir selbst in den Hintern treten.

Im Ursprünglichen Entwurf meines Skripts habe ich die Ausführungsanweisungen von If und else in geschweifte Klammern gesetzt. Das entfernen der selbigen hat alles wieder zum laufen gebracht.

Daher tut es mir echt leid euch damit belästigt zu haben und bedanke mich für für die Hilfe.

Dr. D
Antworten