| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- # Test walrus operator (:=)
- # Basic usage in if statement
- x = [1, 2, 3, 4, 5]
- if (n := len(x)) > 3:
- assert n == 5
- # Usage in while loop
- data = [1, 2, 3, 0, 4, 5]
- results = []
- i = 0
- while (val := data[i]) != 0:
- results.append(val)
- i += 1
- assert results == [1, 2, 3]
- # Usage in list comprehension filter
- values = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
- even_squares = [y for x in values if (y := x * x) % 2 == 0]
- assert even_squares == [4, 16, 36, 64, 100]
- # Walrus in expression context
- a = 10
- b = (a := a + 5) * 2
- assert a == 15
- assert b == 30
- # Nested parenthesized walrus
- result = (x := (y := 3) + 1)
- assert x == 4
- assert y == 3
- # Test function
- def test_walrus_in_function():
- result = (x := (y := 3) + 1)
- assert x == 4
- assert y == 3
- assert result == 4
- test_walrus_in_function()
|