hi noch mal wo finde ich die komplete syntax von python ??
mit erklärung (wens geht in deutsch) ????
cya The_ride
komplette syntax
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Die gibts hier, unter dem Punkt "Die Syntax von Python", in EBNF-Schreibweise.The_ride hat geschrieben:wo finde ich die komplete syntax von python ??
Aber warscheinlich wirst du damit nicht viel anfangen können (kaum jemand braucht die Definition der Python-Syntax zum Programmieren von Python), daher würde ich dir raten, dass du einfach Python so lernst. DIe Systax lernst du nebenbei.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
-
- User
- Beiträge: 9
- Registriert: Sonntag 22. Oktober 2006, 21:05
Ich finde den Blick auf die Syntax einer Sprache interessant. Leider ist die Python-Syntax nicht so einfach (kurz) wie etwa die von Pascal oder Algol60 und wirkt dadurch verwirrend.
Auch findet man (für mich) überraschende Dinge, z.B.
das 'else' in einer for-Schleife, es wird in nur wenigen Einführungen erklärt.
dass eine Parameterliste mit einem Komma enden darf:
def fun(a, b,): oder x = fkt(y, z,)
"was soll das wohl?" Im print-Statement ist die Sache klar.
Gruß Bernd
Auch findet man (für mich) überraschende Dinge, z.B.
das 'else' in einer for-Schleife, es wird in nur wenigen Einführungen erklärt.
dass eine Parameterliste mit einem Komma enden darf:
def fun(a, b,): oder x = fkt(y, z,)
"was soll das wohl?" Im print-Statement ist die Sache klar.
Gruß Bernd
Das ist ja auch absolut furchtbar. Irgendwie hätte ich bei einem Wort, das man mit "sonst" oder "andernfalls" übersetzt erwartet, das dieser Zweig ausgeführt wird, wenn der Schleifenrumpf *nicht* ausgeführt wurde. Dafür würden mir auch Anwendungsfälle einfallen. Der ``else``-Zweig wird aber *immer* ausgeführt, es sei denn die Schleife wird mit ``break`` verlassen. Was sich Guido dabei gedacht hat...Bernd Jonsson hat geschrieben:Auch findet man (für mich) überraschende Dinge, z.B. das 'else' in einer for-Schleife, es wird in nur wenigen Einführungen erklärt.
Einfach Kosistenz würde ich sagen. Das kann man auch bei literalen Tupeln, Listen, und Dictionaries so machen. Letztendlich ist das ja ein Tupel mit Argumenten.dass eine Parameterliste mit einem Komma enden darf:
def fun(a, b,): oder x = fkt(y, z,)
"was soll das wohl?"
Ich finde die Semantik komisch. Für diese implemetierte Semantik fällt mir kein gutes Schlüsselword ein. Und auch so auf Anhieb keine Anwendungsfälle. Da bin ich wohl nicht der Einzige, weil man es selten in der freien Wildbahn sieht.
Für die Semantik die ich in meiner Naivität angenommen hätte, fielen mir dagegen schon Anwendungsfälle ein, also eine "Sonderbehandlung" wenn eine Schleife gar nicht ausgeführt wurde:
Das würde ich irgendwie "natürlich" finden und es würde zum Beispiel den Fall wenn `iterable` ein Iterator ist, wesentlich vereinfachen. Weil man sonst irgendwie erkennen müsste ob der was enthalten hat, oder nicht, man bräuchte also ein extra Flag z.B. so:
Für die Semantik die ich in meiner Naivität angenommen hätte, fielen mir dagegen schon Anwendungsfälle ein, also eine "Sonderbehandlung" wenn eine Schleife gar nicht ausgeführt wurde:
Code: Alles auswählen
for item in iterable:
do_something(item)
print 'processed %s' item
else:
print 'nothing to process'
Code: Alles auswählen
processed = False
for item in iterable:
do_something(item)
print 'processed %s' item
processed = True
if not processed:
print 'nothing to process'
Ich bin auch kein Fan des for-else, so wie es implementiert ist.
Gedacht ist dies wohl für Fälle wie diesen:
Gedacht ist dies wohl für Fälle wie diesen:
Code: Alles auswählen
from math import sqrt
zahl = 1234567891
for t in xrange(2,sqrt(zahl)):
if zahl%t == 0:
print zahl,"ist ein Vielfaches von",t
break
else:
print zahl, "ist prim"