# 基隆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