Damien George
4 years ago
4 changed files with 65 additions and 0 deletions
@ -0,0 +1,29 @@ |
|||
(x := 4) |
|||
print(x) |
|||
|
|||
if x := 2: |
|||
print(True) |
|||
print(x) |
|||
|
|||
print(4, x := 5) |
|||
print(x) |
|||
|
|||
x = 1 |
|||
print(x, x := 5, x) |
|||
print(x) |
|||
|
|||
|
|||
def foo(): |
|||
print("any", any((hit := i) % 5 == 3 and (hit % 2) == 0 for i in range(10))) |
|||
return hit |
|||
|
|||
|
|||
hit = 123 |
|||
print(foo()) |
|||
print(hit) # shouldn't be changed by foo |
|||
|
|||
print("any", any((hit := i) % 5 == 3 and (hit % 2) == 0 for i in range(10))) |
|||
print(hit) # should be changed by above |
|||
|
|||
print([((m := k + 1), k * m) for k in range(4)]) |
|||
print(m) |
@ -0,0 +1,14 @@ |
|||
4 |
|||
True |
|||
2 |
|||
4 5 |
|||
5 |
|||
1 5 5 |
|||
5 |
|||
any True |
|||
8 |
|||
123 |
|||
any True |
|||
8 |
|||
[(1, 0), (2, 2), (3, 6), (4, 12)] |
|||
4 |
@ -0,0 +1,16 @@ |
|||
# test SyntaxError with := operator |
|||
|
|||
def test(code): |
|||
try: |
|||
print(eval(code)) |
|||
except SyntaxError: |
|||
print('SyntaxError') |
|||
|
|||
test("x := 1") |
|||
test("((x, y) := 1)") |
|||
|
|||
# these are currently all allowed in MicroPython, but not in CPython |
|||
test("([i := i + 1 for i in range(4)])") |
|||
test("([i := -1 for i, j in [(1, 2)]])") |
|||
test("([[(i := j) for i in range(2)] for j in range(2)])") |
|||
test("([[(j := i) for i in range(2)] for j in range(2)])") |
@ -0,0 +1,6 @@ |
|||
SyntaxError |
|||
SyntaxError |
|||
[1, 2, 3, 4] |
|||
[-1] |
|||
[[0, 0], [1, 1]] |
|||
[[0, 1], [0, 1]] |
Loading…
Reference in new issue