Forum: PC-Programmierung neu in python


von C jaj (Gast)


Lesenswert?

Hallo, war bis jz ausschließlich in C unterwegs.
Deswegen die Frage, was hiermit nicht stimmt

elif ((Bestätigung == "J") && (result != 0) )

Fehlermeldung invalid syntax

von C jaj (Gast)


Lesenswert?

C jaj schrieb:
> Hallo, war bis jz ausschließlich in C unterwegs.
> Deswegen die Frage, was hiermit nicht stimmt
>
> elif ((Bestätigung == "J") && (result != 0) )
>
> Fehlermeldung invalid syntax

fuck doppelpunkte?

von Thomas V. (tomv)


Lesenswert?

Ich persönlich würde Variablennamen mit Umlauten vermeiden. Ob das bei 
Python zu einer "invalid syntax" führt, weiß ich aber nicht.

von Kr (Gast)


Lesenswert?

Statt „&&“ ein „and“ und die äußere Klammer ist unnötig, dafür aber 
einen Doppelpunkt am Ende der Zeile!

von Rolf M. (rmagnus)


Lesenswert?

1
elif Bestätigung == "J" and result != 0:

Falls es noch Python2-kompatibel sein soll, sollten auch keine Umlaute 
in Identifiern verwendet werden.

von Heiner (Gast)


Lesenswert?

Thomas V. schrieb:
> Ich persönlich würde Variablennamen mit Umlauten vermeiden. Ob das
> bei
> Python zu einer "invalid syntax" führt, weiß ich aber nicht.

Ab Python 3 sind zahlreiche UTF-8-Symbole, die nicht ASCII sind, in 
Bezeichnern erlaubt:

https://www.python.org/dev/peps/pep-3131/

C jaj schrieb:
> elif ((Bestätigung == "J") && (result != 0) )

Kr hat schon auf die Fehler hingewiesen: && gibbet nicht, stattdessen 
"and" verwenden, außerdem muss ein Doppelpunkt ans Ende.

Hinweise zum Stil, auch wenn es im Moment vielleicht nicht dein 
vorrangiges Problem ist:
- Variablenbezeichner klein schreiben.
- ! als Negation und != gibt es in Python, allgemein bevorzugt man aber 
"not",
- In Python sind die meisten Werte True, aber u.a. 0 ist False, deshalb 
verzichtet man häufig auf Vergleiche mit 0.
- Wenn jeder, der jemals mit dem Code zu tun haben wird, Deutsch 
spricht, dann sind deutsche Bezeichner in Ordnung. Man würde aber 
Sprachen nicht mischen und ganz sicher nicht zur Unterscheidung 
verwenden, also z.B. sowohl result als auch ergebnis haben.
- Auch wenn mehr erlaubt ist, hält man sich doch möglichst an 
ASCII-Symbole.

Sieht dann so aus:
1
elif confirmation == "J" and result:

von Thomas V. (tomv)


Lesenswert?

Heiner schrieb:

> Ab Python 3 sind zahlreiche UTF-8-Symbole, die nicht ASCII sind, in
> Bezeichnern erlaubt:
>
> https://www.python.org/dev/peps/pep-3131/

Danke, wieder was gelernt!

Obwohl ich mir gerade vorstelle, was passieren könnte, wenn man solche 
Programme zwischen Systemen mit verschiedenen Zeichensätzen kopiert.


<MeineMeinung>
 Dinge, die die welt nicht braucht
</MeineMeinung>

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.