Zeichenketten zählen und ausgeben

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
Benutzeravatar
bwbg
User
Beiträge: 407
Registriert: Mittwoch 23. Januar 2008, 13:35

Die Klammern beim Generatorausdruck dürfen nur weggelassen werden, wenn dieser das einzige Argument der Funktion ist. Ansonsten ist wieder Klammern angesagt. Ich vermute mal, dass es was mit dem parsing zu tun hat. Hinterfragt hatte ich das nie.
"Du bist der Messias! Und ich muss es wissen, denn ich bin schon einigen gefolgt!"
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Klammern weglassen ist bei generator expressions genauso wenig Zucker wie bei Tupeln. Die sind halt grundsätzlich nicht notwendig aber je nach Kontext halt schon weil damit andere (und halt auch der Parser) noch verstehen was du meinst.
bords0
User
Beiträge: 234
Registriert: Mittwoch 4. Juli 2007, 20:40

DasIch hat geschrieben:Klammern weglassen ist bei generator expressions genauso wenig Zucker wie bei Tupeln. Die sind halt grundsätzlich nicht notwendig aber je nach Kontext halt schon weil damit andere (und halt auch der Parser) noch verstehen was du meinst.
Das ist schlicht falsch. Es ist genau umgekehrt.

Im Gegensatz zu Tupeln, die als Funktionsargumente zusätzliche Klammern benötigen, kann man dort bei generator expressions die sonst stets nötigen Klammern weglassen.
https://docs.python.org/3/reference/exp ... xpressions
Benutzeravatar
pillmuncher
User
Beiträge: 1484
Registriert: Samstag 21. März 2009, 22:59
Wohnort: Pfaffenwinkel

bords0 hat geschrieben:Im Gegensatz zu Tupeln, die als Funktionsargumente zusätzliche Klammern benötigen, kann man dort bei generator expressions die sonst stets nötigen Klammern weglassen.
Hm... Dann scheint mein Python kaputt zu sein...

Code: Alles auswählen

>>> def foo(a, b):
...     pass
...
>>> foo('test', x for x in range(3))
  File "<stdin>", line 1
SyntaxError: Generator expression must be parenthesized if not sole argument
In specifications, Murphy's Law supersedes Ohm's.
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Antworten