133 lines
2.8 KiB
Text
133 lines
2.8 KiB
Text
MicroPython \.\+ version
|
|
Use Ctrl-D to exit, Ctrl-E for paste mode
|
|
>>> # Test REPL paste mode functionality
|
|
>>>
|
|
>>> # Basic paste mode with a simple function
|
|
>>>
|
|
paste mode; Ctrl-C to cancel, Ctrl-D to finish
|
|
===
|
|
=== def hello():
|
|
=== print('Hello from paste mode!')
|
|
=== hello()
|
|
===
|
|
Hello from paste mode!
|
|
>>>
|
|
>>> # Paste mode with multiple indentation levels
|
|
>>>
|
|
paste mode; Ctrl-C to cancel, Ctrl-D to finish
|
|
===
|
|
=== def calculate(n):
|
|
=== if n > 0:
|
|
=== for i in range(n):
|
|
=== if i % 2 == 0:
|
|
=== print(f'Even: {i}')
|
|
=== else:
|
|
=== print(f'Odd: {i}')
|
|
=== else:
|
|
=== print('n must be positive')
|
|
===
|
|
=== calculate(5)
|
|
===
|
|
Even: 0
|
|
Odd: 1
|
|
Even: 2
|
|
Odd: 3
|
|
Even: 4
|
|
>>>
|
|
>>> # Paste mode with blank lines
|
|
>>>
|
|
paste mode; Ctrl-C to cancel, Ctrl-D to finish
|
|
===
|
|
=== def function_with_blanks():
|
|
=== print('First line')
|
|
===
|
|
=== print('After blank line')
|
|
===
|
|
===
|
|
=== print('After two blank lines')
|
|
===
|
|
=== function_with_blanks()
|
|
===
|
|
First line
|
|
After blank line
|
|
After two blank lines
|
|
>>>
|
|
>>> # Paste mode with class definition and multiple methods
|
|
>>>
|
|
paste mode; Ctrl-C to cancel, Ctrl-D to finish
|
|
===
|
|
=== class TestClass:
|
|
=== def __init__(self, value):
|
|
=== self.value = value
|
|
===
|
|
=== def display(self):
|
|
=== print(f'Value is: {self.value}')
|
|
===
|
|
=== def double(self):
|
|
=== self.value *= 2
|
|
=== return self.value
|
|
===
|
|
=== obj = TestClass(21)
|
|
=== obj.display()
|
|
=== print(f'Doubled: {obj.double()}')
|
|
=== obj.display()
|
|
===
|
|
Value is: 21
|
|
Doubled: 42
|
|
Value is: 42
|
|
>>>
|
|
>>> # Paste mode with exception handling
|
|
>>>
|
|
paste mode; Ctrl-C to cancel, Ctrl-D to finish
|
|
===
|
|
=== try:
|
|
=== x = 1 / 0
|
|
=== except ZeroDivisionError:
|
|
=== print('Caught division by zero')
|
|
=== finally:
|
|
=== print('Finally block executed')
|
|
===
|
|
Caught division by zero
|
|
Finally block executed
|
|
>>>
|
|
>>> # Cancel paste mode with Ctrl-C
|
|
>>>
|
|
paste mode; Ctrl-C to cancel, Ctrl-D to finish
|
|
===
|
|
=== print('This should not execute')
|
|
===
|
|
>>>
|
|
>>>
|
|
>>> # Normal REPL still works after cancelled paste
|
|
>>> print('Back to normal REPL')
|
|
Back to normal REPL
|
|
>>>
|
|
>>> # Paste mode with syntax error
|
|
>>>
|
|
paste mode; Ctrl-C to cancel, Ctrl-D to finish
|
|
===
|
|
=== def bad_syntax(:
|
|
=== print('Missing parameter')
|
|
===
|
|
Traceback (most recent call last):
|
|
File "<stdin>", line 2
|
|
SyntaxError: invalid syntax
|
|
>>>
|
|
>>> # Paste mode with runtime error
|
|
>>>
|
|
paste mode; Ctrl-C to cancel, Ctrl-D to finish
|
|
===
|
|
=== def will_error():
|
|
=== undefined_variable
|
|
===
|
|
=== will_error()
|
|
===
|
|
Traceback (most recent call last):
|
|
File "<stdin>", line 5, in <module>
|
|
File "<stdin>", line 3, in will_error
|
|
NameError: name 'undefined_variable' isn't defined
|
|
>>>
|
|
>>> # Final test to show REPL is still functioning
|
|
>>> 1 + 2 + 3
|
|
6
|
|
>>>
|