
http://pic.netbian.com/tupian/26928.html
此部分介紹了MicroPython的交互式解釋器模式的特性,其常用術語為REPL(讀取read-評估eval-打印print-循環loop),用于指代此交互式提示符。
當鍵入以冒號(例如:if、for、while)結尾的python語句時,提示符將變為三個點(…),光標將縮進4個空格。當您點擊返回鍵,下一行將繼續在正常語句縮進的同一級別,或在適當的情況下繼續添加縮進級別。若您點擊退格鍵,則將撤銷一個縮進級別。
若您的光標一直停在開始時,點擊返回鍵將執行您輸入的代碼。以下演示了您在輸入for語句后將看到的(下劃線顯示光標的位置):
for i in range(3):_
若您輸入if語句,則將提供額外的縮進級別:
for i in range(30):if i > 3:_
現在輸入 break ,然后點擊回車鍵,再點擊退格鍵:
for i in range(30):if i > 3:break_
最后,鍵入 print(i) ,依次點擊回車鍵、退格鍵和回車鍵:
for i in range(30):if i > 3:breakprint(i)...0123>>>
若前兩行都為空格,則不會應用自動縮進。這意味著您可以通過點擊兩次返回來完成復合語句輸入,然后第三次按鍵結束并執行。
當在REPL中輸入指令時,如果輸入的行對應某物名稱的開頭,點擊TAB鍵將顯示您可能輸入的內容。例如,鍵入 m 并點擊TAB,則其將擴展為 machine 。鍵入一個點 . 并點擊TAB,您將看到如下:
>>> machine.
__name__ info unique_id reset
bootloader freq rng idle
sleep deepsleep disable_irq enable_irq
Pin
該詞將盡可能擴展,直至出現多種可能性。例如:鍵入 machine.Pin.AF3 并點擊TAB鍵, 則其將擴展為 machine.Pin.AF3_TIM 。長按TAB一秒,則顯示可能的擴展:
>>> machine.Pin.AF3_TIM
AF3_TIM10 AF3_TIM11 AF3_TIM8 AF3_TIM9
>>> machine.Pin.AF3_TIM
您可通過點擊Ctrl-C來中斷一個運行程序。這將引發鍵盤中斷,使您返回REPL,前提是您的程序不會阻截鍵盤中斷故障。
例如:
> for i in range(1000000):... print(i)...0123...646664676468Traceback (most recent call last):File "<stdin>", line 2, in <module>KeyboardInterrupt:>
若您想將某些代碼粘貼到您的終端窗口中,自動縮進特性將會成為障礙。例如,若您有以下python代碼:
def foo():print('This is a test to show paste mode')print('Here is a second line')foo()
您試圖將此代碼粘貼到常規REPL中,那么您將會看到以下內容:
def foo():print('This is a test to show paste mode')print('Here is a second line')foo()...File "<stdin>", line 3IndentationError: unexpected indent
若您點擊Ctrl-E,則將進入粘貼模式,即關閉自動縮進特性,并將提示符從 >>> 更改為 === 。例如:
>>>paste mode; Ctrl-C to cancel, Ctrl-D to finish=== def foo():=== print('This is a test to show paste mode')=== print('Here is a second line')=== foo()===This is a test to show paste modeHere is a second line>>>
粘貼模式允許粘貼空白行,將被粘貼文本作為文件編譯。點擊Ctrl-D退出粘貼模式,并啟動編譯。
軟復位將重置python的解釋器,但不會重置您連接到MicroPython板的方法(USB-串口或WiFi)。
您可點擊Ctrl-D從REPL進行軟復位,或從您的python代碼中執行:
raise SystemExit
例如:若您重置您的MicroPython板,并執行dir()指令,您將看到如下內容:
>>> dir()
['__name__', 'pyb']
現在創建一些變量,并重復dir()指令:
>>> i = 1
>>> j = 23
>>> x = 'abc'
>>> dir()
['j', 'x', '__name__', 'pyb', 'i']
>>>
現在,若您點擊Ctrl-D,并重復dir()指令,您將發現變量不復存在:
PYB: sync filesystems
PYB: soft reboot
MicroPython v1.5-51-g6f70283-dirty on 2015-10-30; PYBv1.0 with STM32F405RG
Type "help()" for more information.
>>> dir()
['__name__', 'pyb']
>>>
使用REPL時,進行計算并得到結果。MicroPython將之前語句的結果儲存到變量_(下劃線)中。您可使用下劃線將結果儲存到變量中。例如:
>>> 1 + 2 + 3 + 4 + 5
15
>>> x = _
>>> x
15
>>>
原始模式并非用于日常使用,而是用于編程。其運行類似于關閉回應的粘貼模式。
點擊Ctrl-A進入原始模式。發送您的python代碼,然后點擊Ctrl-D。Ctrl-D鍵將識別為”確定”,然后編譯并執行python 代碼。所有輸出(或故障)都會發送回去。點擊Ctrl-B將會推出原始模式,并返回常規(又稱友好型)REPL。
tools/pyboard.py 程序使用原始REPL來在MicroPython板上執行python文件。