Programmieren?

3 Antworten

Steht doch klar und deutlich da:

Expected an indent block after 'if' statement on line 9

Wenn du kein Englisch kannst, einfach mal in 'nen Übersetzer Copy-Pasten:

Erwarte einen eingerückten Block nach der 'if'-Anweisung in Zeile 9

"Eingerückt" bedeutet in Python: "Um 2 oder 4 Leerzeichen nach rechts verschoben".

Du sollst also den Code, der nach dem if kommt (nämlich deine print-Aufrufe), einrücken (per Leerzeichen nach rechts verschieben).

Python hat so klare aussagekräftige und anfängerfreundliche Fehlermeldungen, das findet man in keiner anderen Sprache. Sollte man schon ausnutzen, und sich die Fehlermeldung genau durchlesen.

Woher ich das weiß:Studium / Ausbildung – Bachelor in Informatik 👨🏻‍🎓

malte314  20.06.2023, 20:56

Wie kann man als Community-Experte so passiv-aggressiv antworten?
Und:

[...] das findet man in keiner anderen Sprache

Python Fehlermeldungen sind teilweise schrecklich und gute findet man mittlerweile in vielen Sprachen, allen voran Rust.

MrAmazing2  20.06.2023, 21:11
@malte314
Wie kann man als Community-Experte so passiv-aggressiv antworten?

Naja, why not. Besser als ihm einfach nur den Fehler zu erklären und dann noch 20 solcher Fragen hier zu sehen. Jetzt weiß er, wie er vorzugehen hat.

Python Fehlermeldungen sind teilweise schrecklich und gute findet man mittlerweile in vielen Sprachen, allen voran Rust.

Ich hab noch keine einzige Fehlermeldung gesehen die schrecklich wäre, hast du ein Beispiel?

Meine erste Programmersprache war C, DAS waren schreckliche Fehlermeldungen. Da stimmte weder die Zeilenangabe, noch sagte die Fehlermeldung etwas darüber aus, wie der Fehler zustande kam. In Sprachen wie Java geht es noch halbwegs, da muss man selbst nachverfolgen, wo die Exception geworfen wird. Python hingegen liefert einem literally die Lösung auf dem Servierteller. Einfach "Die Zeile, das ist der Fehler, das musst du einrücken, dann sollte es gehen". Was will man mehr. Deswegen so passive aggresive - er bekommt die Lösung so schön serviert und sieht sie trotzdem nicht.
Rust habe ich noch nie benutzt, aber klingt vielversprechend, muss ich mir mal anschauen.

malte314  20.06.2023, 21:33
@MrAmazing2
Meine erste Programmersprache war C, DAS waren schreckliche Fehlermeldungen

Ich kann ja nicht wissen, wie lange das her ist aber meiner Meinung nach leifert der gnu c compiler teils hervorragende Fehlermeldungen. Im Übrigen frage ich mich, ob wir von runtime-Meldungen sprechen oder von Compiler / Interpreter-Fehlermeldungen.

Erzesel  20.06.2023, 21:35
@malte314
als Community-Experte so passiv-aggressiv

...und was hast Du außer Mimimi mit der Sache zu tun?

Ich finde nichts aggressives an der Antwort...einfach klar und ungeschnörkelte Kritik. (...bloß gut das ich nicht geantwortet habe...🥱, sonst wärst Du wohl in Tränen zerflossen😭)

Im Übrigen sind Communt-Experten auch nur Menschen. Warum sollten die (anders als "Normalos") stets Samthandschuhe benutzen ?

malte314  22.06.2023, 11:58
@Erzesel

Gegenfrage, wAs HaSt Du AußEr MiMiMi MiT dEr SaChE zU tUn?

Ich habe diese Anwtort gesehen und es hat mich an die toxische Kultur von StackOverflow erinnert, die sehr entmutigend für Anfänger ist und habe deswegen meine Meinung dazu geschrieben; in die Kommentare, die genau dafür da sind.

Ich finde nichts aggressives an der Antwort...einfach klar und ungeschnörkelte Kritik.

Ja, die Antwort kritisiert. Aber unnötigerweise und in meinen Augen sehr passiv-aggressiv.

Im Übrigen sind Communt-Experten auch nur Menschen. Warum sollten die (anders als "Normalos") stets Samthandschuhe benutzen ?

Na weil sie Aushängeschilder und Vorbilder sein sollen. Die Antworten sind extra hervorgehoben und sollten von daher besondere Qualitäten aufweisen.

Siehe die Antwort von @xxxcyberxxx weiter unten als positives Beispiel einer Community-Experten-Antwort.

was habe ich bei meinem Programm bei Python falsch gemacht ? Weil if und else sollen noch in der for-Schleife sein…

In Python sind Einrückungen wichtig. Du musst die print-Statements einrücken, da diese zu den jeweiligen Kontroll-Statements (if-else) gehören. Und jeder weitere "innere Block" muss auch weiter eingerückt werden. Das sagt dir auch die Fehlermeldung

So vom Prinzip:

if x:
  print(...)
else:
  print(...)
Woher ich das weiß:Studium / Ausbildung – Abgeschlossenes Studium der Informatik (B.Sc.)

Zwei Leerzeichen vor dem bei den prints machen.

Woher ich das weiß:Hobby – hobby programmierer seit 2020