---
# System prepended metadata

title: 基隆xAUV Python簡介
tags: [PYTHON, 基隆]

---

# 基隆xAUV Python簡介

###### tags: `基隆` `PYTHON`
![](https://i.imgur.com/ys87EkL.png)


## python 的互動模式
![](https://i.imgur.com/1iUdxHB.png)

## python 檔案與執行
- `python3 filname.py` 執行 python 檔

## vim 使用
> ### 甚麼是vim
- vim 是一種純文字模式下的編輯軟體
- 在 terminal 輸入 `vim fileName.py` 可查看文字內容或新增檔案

> ### vim 指令說明
* `i` :進入編輯模式
* `a` :在游標位置後進入編輯模式
* `Esc` :取消指令或退出編輯模式
* `:<行數>` :跳至第幾行
* `:wq` :儲存並退出
* `:q!` :不儲存強制退出
* `dNd` :從游標開始刪除N行
* `V` :選擇整行
* `v` :選擇游標範圍
* `y` :複製選取範圍
* `p` :貼上剪貼簿內容
* `u` :還原上一步


## python I/O
```python= 
print('hello' , 'world' + '123', end = '')
print('*'*(10))
string = input('type an string: ')
```
## 資料型態
> 整數 (int)
- 1, 2, 3, 4
- -1, -2, -3, -4
> 浮點數 (float)
- 1, 1.1, 1.2
- -1.2, -1.3
> 布林
- True
- False
> 字串 (str)
- name
- 123
> 清單 (list)
- ［1, 2, 3］
- ［1, 2, 3, name, 1.2］
> 強制轉型
```python=
i = int()
i = 1
print(type(i))
print(type(str(i)))
```

## 變數
> ### 變數宣告
```python=
i = int()
i = 1
s = str()
s = '123'
b = bool()
b = True
a = []
a = [1, 2, 3]
```
## python 運算子
* 與C語言比較

|運算子| C | python |
| -------- | -------- | -------- |
| 加 | +     | +     |
| 減 | -     | -     |
| 乘 | *     | *     |
| 除 | /     | / (//)     |
| 取餘數 | %     | %     |
| 乘冪 | pow()     | **     |
| 單行註解 | // | #     |
* python2 : ```<int>/<int>```為整數除法，與C的結果相同
* python3 : ```<int>/<int>``` : 若無法整除，會自動轉成float。若不想自動轉型，要用```<int>//<int>```

## python的list
* python中沒有陣列，只有list，不過list比C的array更強大，它可以自由改變長度，也可以容許在同一個list裡放不同型態的變數
* ```a=[]``` : 空的list
* ```a=[1, 2, 3]``` : list初始化
* ```a[索引值]``` : list成員讀取
* ```len(a)``` : 回傳list的長度
* ```a.append``` : 在尾端加入成員
* ```a.extend``` : 在尾端接收另一個list
----
## range
* 產生一個整數的等差數列存
* 語法:range(start, stop, step)
    * start:起始值(可省略，預設值為0)
    * stop:中止值
    * step:增值(可省略，預設值為1)
* 注意range範圍是**≧start, <stop**
* 檢視方法，轉成list
    * Ex:
  ``` python=
  t=range(0, 6, 2)
  a=list(t)  #a=[0, 2, 4]
  ```

## 判斷句
* `>`:大於
* `<`:小於
* `>=`:大於或等於
* `<=`:小於或等於
* `==`:等於(vs=:指派)
* `!=`:不等於
* `and`:且
* `or`:或
* `not`:非(真假對調)
* 這些在python裡也是可以用的
```python=
x=10
y=20
print(x is y)
print(x is not y)
print(x <= 5 and y <= 5)
print(x <= 5 or y <= 5)
print("C" in "Python")
print("C" in "C++")
```

* 範例
```python=
mood = "happy"

if mood is "happy":
    print("^_^")
    
elif mood is "normal":
    print("-_-")
    
elif mood is "sad":
    print("Q_Q")
```
---
## 迴圈
## for迴圈
:::info
for <迭代變數> in <可迭代變數>:
<縮排><其他程式>
:::



* python
```python=
for i in range(2, 10, 2):
    print(i)
```

```python=
data=[]
for i in range(10):
    data.append(i**2)
print(data)
```
* 列出1~a，是2或3的倍數但不是6的倍數的所有整數。

```python=
a=10
for i in range(1, a+1):
    if i%2 == 0 or i%3 == 0:
        if i%6 == 0:
            pass
        else:
            print(i)
```

## while迴圈
:::info
while <判斷句>:
<縮排><其他程式>
:::
* python
```python=
a = 10
while a > 0:
    print(a)
    a-=1
```
---

## 自定義函式
:::info
def <函數名稱>(<變數1>, <變數2>…):
<縮排><函數內容>
:::
* 範例
```python=
def f(x):
    ans = 5*x**2-3*x-11
    return ans
    
a = f(9)
print(a)

```

## Lab

![](https://i.imgur.com/1rEKlCC.png)

```python=
n = int()
while True:
    n = input()
    n = int(n)
    for i in range(n):
        if i < n/2:
            print(" "*((n - 1)//2 - i) + "*"*int((n/2 - (n - 1)//2 + i)*2))
        else:
            print(" "*(i - n//2) + "*"*(n - (i - n//2) * 2))
```


## numpy
:::info
The fundamental package for scientific computing with Python
:::
* 安裝

> If you use pip, you can install NumPy with:
```
pip install numpy
```
> If you use conda, you can install NumPy from the defaults or conda-forge channels:
```
conda create -n my-env
conda activate my-env
conda config --env --add channels conda-forge
conda install numpy
```
* 教學
- https://colab.research.google.com/github/jakevdp/PythonDataScienceHandbook/blob/master/notebooks/02.02-The-Basics-Of-NumPy-Arrays.ipynb


## matplotlib
* 安裝
```
python -m pip install -U pip
python -m pip install -U matplotlib
```

* 教學
- https://colab.research.google.com/github/jakevdp/PythonDataScienceHandbook/blob/master/notebooks/04.00-Introduction-To-Matplotlib.ipynb