# 開始執行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所需要的韌體燒錄到板子上才可以。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://nkust.gitbook.io/nodemcu/python/python-ji-ru.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
