MicroPython \.\+ version Type "help()" for more information. >>> # 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 "", 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 "", line 5, in File "", line 3, in will_error NameError: name 'undefined_variable' isn't defined >>> \$ >>> # Final test to show REPL is still functioning >>> 1 + 2 + 3 6 >>> \$