Fehler meldung

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
demir
User
Beiträge: 4
Registriert: Mittwoch 12. Mai 2010, 23:56

hallo an alle bin neu in forum
hab auch neu angefangen mit python.Und schon
hab ich ein erstes problem wo ich stunden sitze
und nicht weiter weiß wen ich was programmiere
mit den befehlen else,elif bekomm ich ne fehler meldung
aber das liegt nicht an falsches programmieren
weil ich das zu beweis auch 1 zu 1
von Buch abgeschrieben habe als beweis das das nicht von mir war
und da kommt immer wieder dieser fehler meldung SyntaxError: invalid syntax
ich weiß nicht voran es liegt könntet ihr mir helfen bitte.
Pekh
User
Beiträge: 482
Registriert: Donnerstag 22. Mai 2008, 09:09

Wir wissen es auch nicht. Hilf uns! :roll:
Benutzeravatar
gkuhl
User
Beiträge: 600
Registriert: Dienstag 25. November 2008, 18:03
Wohnort: Hong Kong

Hallo und Willkommen im Forum,

zeig uns hier mal den Code, der den Fehler verursacht zusammen mit der vollständigen Fehlermeldung. Bitte achte etwas auf deine Rechtschreibung und Grammatik, sowie Groß- und Kleinschreibung und verwende keine manuellen Zeilenumbrüche, da es deinen Text extrem schwer lesbar macht.

Grüße
Gerrit
demir
User
Beiträge: 4
Registriert: Mittwoch 12. Mai 2010, 23:56

import random
random.seed()
a = random.randint(1,10)
b = random.randint(1,10)
c = a + b
print("Die Aufgabe:", a , "+", b)
print("Bitte eine Zahl eingeben:")
z = input()
zahl = int(z)
if zahl == c:
print(zahl, "ist richtig")
else:
print(zahl, " ist falsch")
print("Ergebnis: ", c)
input()
Das ist der Code da kommt der Fehler SyntaxError: invalid syntax.
rads
User
Beiträge: 153
Registriert: Freitag 26. März 2010, 15:51

Hallo Demir,

wie du sicherlich weißt, und angeblich es sogar Menschen gibt die das für gut finden, muss man bei Python richtig einrücken.
Also die Befehle im If-block müssen eingerückt werden, lustigerweise müssen sich sogar Kommentare an der richtigen Stelle befinden. anbei das ganze Formatiert.

Code: Alles auswählen

     import random
     random.seed()
     a = random.randint(1,10)
     b = random.randint(1,10)
     c = a + b
     print("Die Aufgabe:", a , "+", b)
     print("Bitte eine Zahl eingeben:")
     z = input()
     zahl = int(z)
     if zahl == c:
          print(zahl, "ist richtig")
     else:
          print(zahl, " ist falsch")
     print("Ergebnis: ", c)
     input()
Ich musste hier mit Leerzeichen einrücken, typischerweise macht man das aber mit Tab. Entwickelst du in einer Entwicklungsumgebung wie z.b Eclipse wird dir das auch schon vor dem eigentlich compile mitgeteilt.
Sollte es nicht daran liegen poste uns bitte die genaue Fehlermeldung
Benutzeravatar
gkuhl
User
Beiträge: 600
Registriert: Dienstag 25. November 2008, 18:03
Wohnort: Hong Kong

Bitte verwende die Code-Tags des Forums. Wichtig vor allem weil bei Python Einrücken wichtig ist. Gib bitte die vollständige Fehlermeldung an, z.B.:

Code: Alles auswählen

  File "test.py", line 11
    print(zahl, "ist richtig")
        ^
IndentationError: expected an indented block
Benutzeravatar
gkuhl
User
Beiträge: 600
Registriert: Dienstag 25. November 2008, 18:03
Wohnort: Hong Kong

rads hat geschrieben:wie du sicherlich weißt, und angeblich es sogar Menschen gibt die das für gut finden, muss man bei Python richtig einrücken.
Ich finde es gut. Einer der Gründe weswegen ich Python verwende.
rads hat geschrieben:Ich musste hier mit Leerzeichen einrücken, typischerweise macht man das aber mit Tab.
Nein, in Python sollte man 4 Leerzeichen verwenden! Man kann einen guten Editor aber so einstellen, dass ein Tab automatisch in 4 Leerzeichen umgewandelt wird. Siehe dazu auch den Python Style Guide PEP8.
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

rads hat geschrieben:Also die Befehle im If-block müssen eingerückt werden, lustigerweise müssen sich sogar Kommentare an der richtigen Stelle befinden. anbei das ganze Formatiert.
Dann sieht das hier für dich sicherlich nach einem Bug aus oder was?!

Code: Alles auswählen

>>> if False:
... # a comment
...     print 'this will not be printed...'
... elif True:
...             # another comment
...     print 'but this will be printed!'
...                                     # lefnLFNwelfwb
... 
but this will be printed!
rads
User
Beiträge: 153
Registriert: Freitag 26. März 2010, 15:51

Danke,
ich wolllte keine Grundsatzdiskussion anfangen. Ok Leerzeichen, 4 sind bei mir ein Tab.
Aber danek für die Info. ich bin wie man merkt eher ein Klammer und str+shift+f Mensch
(eclipse)

Grüße

ich dachte an sowas

Code: Alles auswählen

""" correct way 
blubb blubb blubb"""
if False:
    print 'correct'
"""error appeard
this error appear after a division by null
further discription """
elif True:
    print 'error message'
Zuletzt geändert von rads am Donnerstag 13. Mai 2010, 14:25, insgesamt 2-mal geändert.
demir
User
Beiträge: 4
Registriert: Mittwoch 12. Mai 2010, 23:56

Danke an alle wusste nicht das einrücken so Wichtig ist.Problem gelöst und was dazu gelernt.
Noch mal Danke an alle.
BlackJack

@rads: Das sind aber keine Kommentare sondern literale Zeichenketten und damit Ausdrücke. Und Ausdrücke müssen halt korrekt eingerückt werden, damit man weiss wozu sie gehören.

Man sollte Zeichenketten nicht als Kommentare missbrauchen.
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

rads: Das was du zeigst, sind Strings und keine Kommentare. Kommentare beginnen bei Python mit # und gehen bis zum Ende der Zeile. Strings sind etwas ganz anderes; an bestimmten Positionen (z.B. direkt nach einer Klassen- oder Funktionsdefinition) können diese aber eine besondere Funktion erhalten: dann sind es sogenannte Docstrings, die dokumentieren, *was* die Klasse oder Funktion macht. Implementationsdetails (also das *wie*) werden mit Kommentaren erläutert.

Edit: zu langsam
rads
User
Beiträge: 153
Registriert: Freitag 26. März 2010, 15:51

vielen Dank, werde ich in Zukunkft berücksichtigen.
Gibt es für Pyhton sowas wie PMD, Findbugs, der mir sowas sagen würde?
BlackJack

`pylint` und `pyflakes` fallen mir da spontan ein. PyDev kann `pylint` einbinden.
sebastian3984
User
Beiträge: 21
Registriert: Samstag 15. Mai 2010, 17:55

Is halt auf englisch hilft dir aber vll ;)

http://www.python.org/dev/peps/pep-0008/
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

sebastian3984 hat geschrieben:Is halt auf englisch hilft dir aber vll ;)
Gibt es auch auf deutsch.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Leonidas hat geschrieben:Gibt es auch auf deutsch.
Warum denn der URL-Shortener?
Antworten