Code: Alles auswählen
l = [0.5, 0.7]
del l[0] und del(l[0])
Ich konnte del() auch nicht bei den built-ins finden: http://docs.python.org/py3k/library/functions.html
Code: Alles auswählen
l = [0.5, 0.7]
del l[0] und del(l[0])
Weil es eben keine Funktion ist, Statements sind in der Sprachreferenz dokumentiert: http://docs.python.org/reference/simple ... n-del_stmtGregorrr hat geschrieben:Ich konnte del() auch nicht bei den built-ins finden: http://docs.python.org/py3k/library/functions.html
Ahso. print ist bei dem Wechsel von 2 => 3 von einem Statement zu einer Funktion geworden, deswegen braucht man die runden Klammern in Python 3. del ist aber ein Statement geblieben.cofi hat geschrieben:Weil es eben keine Funktion ist, Statements sind in der Sprachreferenz dokumentiert: http://docs.python.org/reference/simple ... n-del_stmtGregorrr hat geschrieben:Ich konnte del() auch nicht bei den built-ins finden: http://docs.python.org/py3k/library/functions.html
Bei `print` sollte man wie DasIch schon sagte Klammern auch weglassen. Teste zum Beispiel mal `print 1,2` und `print(1,2)`
Es geht sogar bei if- und while-Statements:Gregorrr hat geschrieben:Ahso. print ist bei dem Wechsel von 2 => 3 von einem Statement zu einer Funktion geworden, deswegen braucht man die runden Klammern in Python 3. del ist aber ein Statement geblieben.
Nun kann man auch z.B. bei return() klammern setzen. Es ist aber keine Funktion, sondern auch ein Statement, d.h. bei Statements am besten die Klammern weglassen.
Code: Alles auswählen
if (expr):
...
while (expr):
...
Code: Alles auswählen
x = (a + b) * c
Code: Alles auswählen
assert 1 + 2 == (1 + 2)
Code: Alles auswählen
y = (1, 2, 3)
Code: Alles auswählen
def foo(u, v, w):
...
y = foo(7, 8, 9)
Code: Alles auswählen
foo(7, 8, 9)
Code: Alles auswählen
foo((7, 8, 9))
Nein, haben sie nicht, wie dieses simple Beispiel zeigt:pillmuncher hat geschrieben: Rund Klammern haben aber noch weitere Funktionen: zB. zur Erzeugung von Tupeln:
Code: Alles auswählen
>>> t = 1,
>>> type(t)
<type 'tuple'>
Du hast recht. Allerdings kann man ein leeres Tupel nicht ohne Klammen erzeugen:deets hat geschrieben:Nein, haben sie nicht, [...]pillmuncher hat geschrieben: Rund Klammern haben aber noch weitere Funktionen: zB. zur Erzeugung von Tupeln:
Code: Alles auswählen
>>> x = ,
File "<stdin>", line 1
x = ,
^
SyntaxError: invalid syntax
Code: Alles auswählen
>>> x = ,
[/quote][/quote][/quote]
Hach, immer diese Sonderfaelle. Ja, hatte ich vergessen :)
Du hast recht. Hier der Link der alles erklärt. Es wäre auch nicht gar sinnvoll, den Wert von Ausdrücken zu löschen:bords0 hat geschrieben:@pillmuncher: hinter del steht keine expression, sondern eine target_list. Die erlaubt zwar "zufällig" auch Klammern (runde und eckige), das hat aber nichts mit Ausdrücken zu tun.
Code: Alles auswählen
>>> del 1 + 2
File "<stdin>", line 1
SyntaxError: can't delete operator
>>> def foo():
... return 7
...
>>> del foo()
File "<stdin>", line 1
SyntaxError: can't delete function call