Anfängerfrage: if-Anweisung

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
PythonJan
User
Beiträge: 2
Registriert: Samstag 9. Februar 2013, 23:51

Hallo,
möchte mich direkt für die Frage entschuldigen, aber ich find nun seit zwei Tagen nicht raus was ich hier falsch mache.. Habe jetzt ganz neu mit Python angefangen und hab ein paar C Erfahrungen und kenn mich recht gut mit LabVIEW aus.. sicher hab ich daher ein paar Denkweisen im Kopf die nicht so einfach auf Python zu übertragen sind.

Meine Idee: Zum üben eine ganz simple "Datenbank":

Code: Alles auswählen

#!/usr/bin/env python
""" Datenbank """

betrieb = True
print ("Willkommen in der Datenbank!")

while betrieb:
	Aufgabe = int(raw_input("Bitte Aufgabe definieren: /n 1: Kontakt suchen /n 2: Kontakt anlegen /n 3: Beenden")
	if Aufgabe == 1:
		print ("Kontakt auslesen")
	elif Aufgabe == 2:
		print ("Kontakt erstellen")
	else:
		print ("Auf wiedersehen!")
		betrieb = False
Wieso bekomm ich hier direkt die folgende Fehlermeldung:

Code: Alles auswählen

if Aufgabe == 1:
           ^
SyntaxError: invalid syntax
Hab schon gegoogled, 2 Internet-Tutorials gelesen und auch hier im Forum gesucht... Ich glaub die Sache ist die, dass mein Problem zu trivial ist :/
Wär toll wenn sich jemand kurz die Zeit nehmen könnte mir zu zeigen was ich hier falsch mache.
Danke schon mal!
Zuletzt geändert von Anonymous am Sonntag 10. Februar 2013, 00:24, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Codetags gesetzt.
Benutzeravatar
pillmuncher
User
Beiträge: 1484
Registriert: Samstag 21. März 2009, 22:59
Wohnort: Pfaffenwinkel

@PythonJan: Zähl mal, wieviele Klammern du in der Zeile darüber öffnest, und wieviele du wieder schließt...
In specifications, Murphy's Law supersedes Ohm's.
PythonJan
User
Beiträge: 2
Registriert: Samstag 9. Februar 2013, 23:51

Oh nein.
Ich hab's geahnt.. wie blöd

Ich muss echt erstmal etwas reinkommen, sorry.

Nichtsdestotrotz: Vielen Dank für deine Antwort! Ich hätte wahrscheinlich noch eine ganze Weile gebraucht. Hatte mir wegen der Error Meldung immer die falsche Zeile angeguckt :/

Tja.. ich glaube der Gehalt dieses Themas geht gegen null.. Falls ein Admin das hier liest kann er das Thema ja vielleicht schließen..
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

PythonJan hat geschrieben:Tja.. ich glaube der Gehalt dieses Themas geht gegen null.
Definitiv nicht. Bei Stackoverflow kommt das Thema mehrmals pro Woche.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Das Problem ist halt, dass der Interpreter da immer die Zeile unten drunter anzeigt. Wenn man länger Python programmiert, dann kennt man das (oder nutzt einfach nen Editor mit Klammern-Highlighting oder automatischer Klammersetzung).
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Dingels
User
Beiträge: 61
Registriert: Dienstag 23. Dezember 2008, 19:50

Es bleibt noch zu erwähnen, dass deine Verwendung der while-Schleife ziemlich umständlich ist. Die Variable betrieb ist hier überflüssig. Um aus einer Schleife auszubrechen, nutze das Schlüsselwort break stattdessen:

Code: Alles auswählen

#!/usr/bin/env python
""" Datenbank """

print ("Willkommen in der Datenbank!")

while True:
        Aufgabe = int(raw_input("Bitte Aufgabe definieren: /n 1: Kontakt suchen /n 2: Kontakt anlegen /n 3: Beenden"))
        if Aufgabe == 1:
                print ("Kontakt auslesen")
        elif Aufgabe == 2:
                print ("Kontakt erstellen")
        else:
                print ("Auf wiedersehen!")
                break
BlackJack

Da sollte man dann vielleicht noch sagen, dass die Klammern bei den ``print``-Anweisungen nichts zu suchen haben.
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

BlackJack hat geschrieben:Da sollte man dann vielleicht noch sagen, dass die Klammern bei den ``print``-Anweisungen nichts zu suchen haben.
Während sie bei Python 3 bei den print-Funktionen zwingend verwendet werden müssen.
Sirius3
User
Beiträge: 17747
Registriert: Sonntag 21. Oktober 2012, 17:20

/me hat geschrieben:Während sie bei Python 3 bei den print-Funktionen zwingend verwendet werden müssen.
... und bei Funktionen das Leerzeichen zwischen print und ( nichts zu suchen hat.
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Sirius3 hat geschrieben:... und bei Funktionen das Leerzeichen zwischen print und ( nichts zu suchen hat.
Hier sollte man dann direkt auf PEP-8, den Style Guide for Python Code verweisen und in diesem Kontext insbesondere auf Whitespace in Expressions and Statements.
Antworten