> For the complete documentation index, see [llms.txt](https://nkust.gitbook.io/nodemcu/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://nkust.gitbook.io/nodemcu/python/python-ji-ru.md).

# 開始執行Python

在這裡，我們很簡單地介紹一些在NodeMCU中會用到的Python程式設計基本能力，讓同學們在開始練習的時候，知道自己所輸入的程式碼代表的是什麼意思。首先，我們從如何在自己的電腦練習Python程式開始。

## 如何開始編寫及執行Python程式

### 在瀏覽器中執行

不管你使用的是哪一種作業系統，只要能夠執行Chrome瀏覽器，就可以輕易地連結到以下任一個線上Python執行環境，在瀏覽器中直接練習Python：

* [python.org](https://www.python.org/shell/)
* [repl.it](https://repl.it/)
* [onlinegdb](https://www.onlinegdb.com/online_python_compiler)
* [JDOODLE](https://www.jdoodle.com/python-programming-online)
* [Python fiddle](http://pythonfiddle.com/)

其實還有非常多可以選擇，您只要到Google搜尋一下Python online editor，就可以找到一大堆了。

### Windows

在Windows作業系統之下，建議同學們直接先到以下的連結下載Anaconda的安裝檔案，並執行安裝：

<https://www.anaconda.com/download/>

{% hint style="info" %}
從 網頁中的連結也可以得知，Anaconda除了支援Windows之外，也支援了Mac OS以及Linux，所以建議不管你是什麼作業系統，都可以安裝Anaconda，方便使用許多常用的Python套件。
{% endhint %}

安裝完畢之後，就可以在程式集中看到「Anaconda Prompt」的可執行檔，點擊執行之後，就會進入具備有Python執行環境的命令提示字元，此時只要鍵入python即可：

```
(base) C:\Users\USER>python
Python 3.6.5 |Anaconda, Inc.| (default, Mar 29 2018, 13:32:41) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
```

當然，建議使用ipython會比較好用的Shell環境，如下所示：

```
(base) C:\Users\USER>ipython
Python 3.6.5 |Anaconda, Inc.| (default, Mar 29 2018, 13:32:41) [MSC v.1900 64 bit (AMD64)]
Type 'copyright', 'credits' or 'license' for more information
IPython 6.4.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]:
```

### Mac OS or Linux

如果你使用的是Mac OS或是Linux作業系統，那麼很簡單，只要終端機模式下鍵入以下的指令就可以了：

```
$ python
```

{% hint style="info" %}
&#x20;如果你使用的是 Windows作業系統的話，在預設的情況下是沒有Python解譯器的，還需要經過安裝的步驟才可以執行，而且執行的地方，是在命令提示字元中，在後面我們會有說明。
{% endhint %}

一旦執行了Python之後，就可以看到如下所示的Shell介面：

```
>>> 
```

上述的符號就是Python直譯器的命令提示字元，我們可以直接在>>>的符號之後輸入Python指令，任一指令在按下Enter之後，即會被執行，並輸出結果，如下所示：

```
>>> print("Hello world!")
Hello world!
```

### 你的第一支Python程式

以下是一個列出10個1\~6之間隨機整數的小程式：

{% code title="first.py" %}

```python
import random
for i in range(10):
    print(random.randint(1,6))
```

{% endcode %}

我們使用文字編輯器把這個程式檔案輸入之後，命名為first.py儲存起來，再透過python first.py執行它，執行結果如下：

```
(base) C:\Users\USER>python first.py
3
6
3
3
1
6
1
5
2
5
```

此程式在第一行以import指令匯入使用隨機數的相關函數，然後透過for迴圈，設定執行10次，其中range是一個內建的函數，它會產生0到指定之數字的前一個數的列表，如下所示：

```
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
```

{% hint style="info" %}
要留意的是，在Python 3之後，它並不能直接以串列的型式呈現，而是一個叫做range的類別，但是我們還是可以一個一個地取出，就好像是在對待串列一樣。
{% endhint %}

因此迴圈指定變數 i 依序指定為這些數字，全部有10個數字，迴圈就會被執行10次。每次執行時，都會去呼叫random.randint(1,6)函數，其中random是套件的名稱，randint則是函數的名稱。此函數的功用就是從指定的兩個數字範圍中，隨機傳回一個其中的數字。

特別要留意的是，Python語言利用縮排來決定程式區塊的從屬關係，因此程式中的第3行一定要縮排進去，才能夠當做是迴圈指令的一部份。

{% hint style="warning" %}
請同學們留意，上述的內容是一般的Python，而NodeMCU的Python環境使用的是MicroPython，在操作的方式上以及語法上有許多的不同喔。
{% endhint %}

MicroPython可以算是Python的精簡版，是被用來支持嵌入式系統（微控制器）的一個分支，它在許多著名的開發板上實現，這些開發板包括BBC micro:bit以及NodeMCU。

而且要留意的是，這些開發板並不是購入之後本身預設就支援MicroPython，而是要先安裝驅動程式，然後透過一些軟體把MicroPython所需要的韌體燒錄到板子上才可以。
