Syntax Fehler

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
Skylex7
User
Beiträge: 3
Registriert: Donnerstag 27. September 2018, 12:04

Guten Mittag :),

vorab ich bin hier und in Python völlig neu. Wir haben von unserem Berufsschullehrer eine Aufgabe bekommen, welche ich allerdings nicht ganz gelößt bekomme. Der Fett gedrucke Absatz ist der Fehler. Ich weiß allerdings nicht welcher und wie ich Ihn beheben kann. Bei der Aufgabe handelt es sich um eine Abfrage, in welcher man sich registrieren muss. Man gibt den Vor- und Nachnamen ein und ob man Männlich oder Weiblich ist. Wenn das alles passt soll er Account registriert ausgeben und wenn nicht es bemängeln. Leider funktioniert die Abfrage nicht......

Vielen Dank für die Hilfe im Voraus :)

from tkinter import *
import tkinter as tk


def Registrieren():
Vorname = S1.get()
Nachname = S2.get()



if S1.get() == "" and S2.get() == ""
S1.remove(0, end)
S1.insert(10, "")
S2.remove(0, end)
S2.insert(10, "")
print("Account Registriert!")

else S1.remove(0, end)
S1.insert(10, "-Pflichtfeld-")
S2.remove(0, end)
S2.insert(10, "-Pflichtfeld-")



Männlich = 0
Weiblich = 1

Master = Tk()

N1 = Label(Master, text="Vorname")
N2 = Label(Master, text="Nachname")

S1 = Entry()
S2 = Entry()

A1 = tk.Button(Master, text='Registrieren', command=Registrieren)

RB1 = Radiobutton(Master,text="Männlich",padx = 20, variable=Männlich, value=0)
RB2 = Radiobutton(Master,text="Weiblich",padx = 20, variable=Männlich, value=1)

RB_3 = Radiobutton(Master,text="15",padx = 20, variable=Weiblich, value=2)
RB_4 = Radiobutton(Master,text="20",padx = 20, variable=Weiblich, value=3)

N1.grid (column = 0, row = 2)
N2.grid (column = 0, row = 3)
S1.grid (column = 1, row = 2)
S2.grid (column = 1, row = 3)
RB1.grid(column = 0, row = 0)
RB2.grid(column = 0, row = 1)
A1.grid (column = 1, row = 4)


Master.mainloop()
xXSkyWalkerXx1
User
Beiträge: 379
Registriert: Mittwoch 27. Juni 2018, 17:39

1. Bitte benutze diese "Wrapper" , sonst sieht ein Code unübersichtlich aus und man erkennt die Einrückungen nicht, die bei Python wichtig sind. ^^

2. Was ich über Handy sofort erkenne und nach deiner Erläuterung das Problem ist:
Nach "Else" und "If" (Bedingungen eingeschlossen) musst du ein ":" setzten.

Die Abfrage muss somit so aussehen:

Code: Alles auswählen

if S1.get() == "" and S2.get() == "":
    S1.remove(0, end)
    S1.insert(10, "")
    S2.remove(0, end)
    S2.insert(10, "")
    print("Account Registriert!")

else:
    S1.remove(0, end)
    S1.insert(10, "-Pflichtfeld-")
    S2.remove(0, end)
    S2.insert(10, "-Pflichtfeld-")
Skylex7
User
Beiträge: 3
Registriert: Donnerstag 27. September 2018, 12:04

Vielen Dank erstmal ^^.
Leider sagt er noch immer Syntax Fehler und ich habe aus meinem Wissenspool (nicht groß) echt alles probiert. Noch jemand eine Idee ?

Shell Ausgabe:

from tkinter import *
>>> import tkinter as tk
>>>
>>> Master = Tk()
>>>
>>> def Registrieren():
... Vorname = S1.get()
... Nachname = S2.get()
...
>>>
>>>
>>> if S1.get() == "" and S2.get() == "":
... S1.remove(0, end)
... S1.insert(10, "")
... S2.remove(0, end)
... S2.insert(10, "")
... print("Account Registriert!")
...
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'S1' is not defined
>>> else:
File "<stdin>", line 1
else:
^
SyntaxError: invalid syntax
>>> S1.remove(0, end)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'S1' is not defined
>>> S1.insert(10, "-Pflicht-")
File "<stdin>", line 1
S1.insert(10, "-Pflicht-")
^
IndentationError: unexpected indent
>>> S2.remove(0, end)
File "<stdin>", line 1
S2.remove(0, end)
^
IndentationError: unexpected indent
>>> S2.insert(10, "-Pflicht-")
File "<stdin>", line 1
S2.insert(10, "-Pflicht-")
^
IndentationError: unexpected indent
>>>
>>>
>>> Männlich = 0
>>> Weiblich = 1
>>>
>>>
>>>
>>> N1 = Label(Master, text="Vorname")
>>> N2 = Label(Master, text="Nachname")
>>>
>>> S1 = Entry()
>>> S2 = Entry()
>>>
>>> A1 = tk.Button(Master, text='Registrieren', command=Registrieren)
>>>
>>> RB1 = Radiobutton(Master,text="Männlich",padx = 20, variable=Männlich, value=0)
>>> RB2 = Radiobutton(Master,text="Weiblich",padx = 20, variable=Männlich, value=1)
>>>
>>> RB_3 = Radiobutton(Master,text="15",padx = 20, variable=Weiblich, value=2)
>>> RB_4 = Radiobutton(Master,text="20",padx = 20, variable=Weiblich, value=3)
>>>
>>> N1.grid(column = 0, row = 2)
>>> N2.grid(column = 0, row = 3)
>>> S1.grid(column = 1, row = 2)
>>> S2.grid(column = 1, row = 3)
>>> RB1.grid(column = 0, row = 0)
>>> RB2.grid(column = 0, row = 1)
>>> A1.grid(column = 1, row = 4)
>>>
>>>
>>> Master.mainloop()
Skylex7
User
Beiträge: 3
Registriert: Donnerstag 27. September 2018, 12:04

Ergänzung --> Nächstes mal mit Wrappern. ^^
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Du musst schon mal wenigstens ein Grundlagentutorial durcharbeiten. Da wird dir erklaert, dass Einrueckungen in Python wichtig sind, um Kontrollstrukturen wie dein if/else zu bilden.
Benutzeravatar
__blackjack__
User
Beiträge: 14033
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Skylex7: Warum hast Du das denn jetzt alles in die Python-Shell eingegeben? Das macht wenig Sinn.
„A life is like a garden. Perfect moments can be had, but not preserved, except in memory. LLAP” — Leonard Nimoy's last tweet.
xXSkyWalkerXx1
User
Beiträge: 379
Registriert: Mittwoch 27. Juni 2018, 17:39

Schau dir ein paar Python Videos und Bücher an.
YouTube z.b. "TheMorpheus".
Antworten