Seite 1 von 1

Syntax Fehler

Verfasst: Donnerstag 27. September 2018, 12:11
von Skylex7
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()

Re: Syntax Fehler

Verfasst: Donnerstag 27. September 2018, 14:15
von xXSkyWalkerXx1
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-")

Re: Syntax Fehler

Verfasst: Donnerstag 27. September 2018, 15:35
von Skylex7
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()

Re: Syntax Fehler

Verfasst: Donnerstag 27. September 2018, 15:38
von Skylex7
Ergänzung --> Nächstes mal mit Wrappern. ^^

Re: Syntax Fehler

Verfasst: Donnerstag 27. September 2018, 15:39
von __deets__
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.

Re: Syntax Fehler

Verfasst: Donnerstag 27. September 2018, 15:39
von __blackjack__
@Skylex7: Warum hast Du das denn jetzt alles in die Python-Shell eingegeben? Das macht wenig Sinn.

Re: Syntax Fehler

Verfasst: Freitag 28. September 2018, 12:09
von xXSkyWalkerXx1
Schau dir ein paar Python Videos und Bücher an.
YouTube z.b. "TheMorpheus".