Seite 1 von 1

doppeltes "print" unter "if"

Verfasst: Mittwoch 4. März 2015, 20:38
von Dr. Doofenschmirtz
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

Re: doppeltes "print" unter "if"

Verfasst: Mittwoch 4. März 2015, 20:46
von 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.

Re: doppeltes "print" unter "if"

Verfasst: Mittwoch 4. März 2015, 21:03
von Dr. Doofenschmirtz
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")

Re: doppeltes "print" unter "if"

Verfasst: Mittwoch 4. März 2015, 21:10
von Dr. Doofenschmirtz
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.

Re: doppeltes "print" unter "if"

Verfasst: Mittwoch 4. März 2015, 21:18
von BlackJack
@Dr. Doofenschmirtz: Da ist ganz offensichtlich ein Problem mit der Einrückung.

Re: doppeltes "print" unter "if"

Verfasst: Mittwoch 4. März 2015, 21:51
von Dr. Doofenschmirtz
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