{%hackmd theme-dark %} Python === ### 作者 <img src="https://i.imgur.com/YXrL1uk.jpg" style="zoom:70%;"> 前言 --- Python 是一種廣泛使用的程式設計語言,用於Web 應用程式、軟體開發、資料科學與機器學習(ML)。 開發人員使用Python 的原因,在於Python 效率高又容易學習,並且可以在許多不同的平台上執行。 Python 軟體可以免費下載,與所有類型的系統完美整合,還可以加快開發速度。 Python 是一種廣泛使用的程式設計語言,用於Web 應用程式、軟體開發、資料科學與機器學習(ML)。 開發人員使用Python 的原因,在於Python 效率高又容易學習,並且可以在許多不同的平台上執行。 Python 軟體可以免費下載,與所有類型的系統完美整合,還可以加快開發速度。 ## 教學開始 ### <mark>輸出</mark> ```python= print("早安 瑪卡巴卡") print(114514) print(a) //a是變數 下面待會會講到 print(0.148257) ``` 而如果同時輸出不同的東西可以這樣做 ```python= print("天線寶寶出來玩",a) print("天線寶寶出來玩"+a) ``` :::danger 注意 如果你使用的是加號的話 翹吼兩個東西的型態要一樣 不能一個是數字而另一個是字元 ::: ### <mark>變數</mark> 等號右邊的結果 ( 值 ),指定 ( 賦予 ) 給等號左邊的變數,下方的程式分別賦予 a、b、c 三個變數字串、數字和串列三種內容。 **換句話說:** 1. 將數字 1 放入一個物件容器。 1. 指定這個物件的名稱為 a ( 變數 a = 1 )。 ```python= a = 1 ``` **如果要一次設定多個變數的名稱和內容,可以使用逗號分隔名稱和內容** ### <mark>型態</mark> python的型態主要有 1. 浮點數 1. 整數 1. 字元 1. 布靈值 ```python= >>> type(10.0) # 浮點數 <class 'float'> >>> type(10) # 整數 <class 'int'> >>> type('25') # 字串,可以用兩個單引號或兩個雙引號括住 <class 'str'> >>> type(True) # 布林值,只分成True(真)或False(偽) <class 'bool'> >>> type(False) <class 'bool'> >>> type(None) # None,代表什麼都沒有,通常發生在東西不存在時 <class 'NoneType'> ``` ### <mark>運算值</mark> 下列是常用的的運算值 | 運算子 | 說明 | | ------ |:-------------------------:| | + | 加法 | | - | 減法 | | * | 乘法 | | / | 除法 | | // | 除法取整數 ( 無條件捨去 ) | | % | 餘數 | | ** | 次方 | :::warning 使用算術運算子進行計算時,按照「先乘除後加減」的規則,並優先計算小括號刮起來的運算式。 ::: ### <mark>縮排</mark> 注意!!!!**「同一個段落裡,只能使用一種縮排方式」**,因此不論是使用幾個空白或是 tab,只要你確定好數量,基本上程式都不會出錯 :::info 一個tab等於四個空白鍵 ::: ```python= n= 10 for i in range(n): a = n - i b = 2 * i + 1 for j in range(a): print(' ', end='') for k in range(b): print('*',end='') print('') ``` 第三行和第四排沒有對齊就是因為縮排的關係,根據縮排的不同,程式的執行結果也會不同喔 ### <mark>註解</mark> 註解是在程式碼中「不會被執行的文字」,主要用來輔助說明程式碼的內容,在 Python 中,用「一個井字號 # 」做為單行註解,用「三個雙引號 """ 或三個單引號 '''」做多行註解 ```python= """ 你好可愛 """ ##三個字 超級可悲 ``` ### <mark>if、elif、else</mark> <img src="https://hackmd.io/_uploads/H1YQd96Yh.png" style="zoom:30%;"> <br/> <br/> ```python= number_a= 228922 munber_b =114514 if a<b: print('hello') # 不會印出,因為結果為 False print('ok') # ok ``` * 一個邏輯判斷裡,只會有一個 if 和 else,但可以有多個 elif。 * 不論是 if、elif 還是 else,最後只會有<mark>一種結果</mark>。 <img src="https://hackmd.io/_uploads/ByFhhqaY3.png" style="zoom:30%;"> :::success 如果遇到「不想執行任何動作」的狀況,可以使用「pass」作為空式子,藉以保持語法的正確性。 ::: ```python= if a>b: pass elif a==b: print("哈哈是我拉") else: print("是我 你爹") ``` ### <mark>AND(&&) OR(||)</mark> * 元素除了 0、空 ( 空字串、空列表...等 )、None 和 False,其他在判斷式裡,全都是 True。 * 越左方 ( 越前方 ) **會越先判斷,逐步往右邊判斷。** * 除了從左向右判斷,<mark>**同時使用多個 and、or 或 not,會先判斷 not,再判斷 and,最後再判斷 or。**</mark> **And && (相乘)** | x | y | output | | --- | --- | ------ | | 0 | 0 | 0 | | 0 | 1 | 0 | | 1 | 0 | 0 | | 1 | 1 | 1 | **Or || (相加)** | x | y | output | | --- | --- | ------ | | 0 | 0 | 0 | | 0 | 1 | 1 | | 1 | 0 | 1 | | 1 | 1 | 1 | ### <mark>FOR</mark> ```python= for i in 'abc': print(i) # a b c ( 字串 ) for i in ['a','b','c']: print(i) # a b c ( 串列 ) for i in {'a','b','c'}: print(i) # c b a ( 集合 ) for i in {'a':1,'b':2,'c':3}: print(i) # a b c ( 字典 ) ``` 如果將 for 迴圈放在 for 迴圈裡,就會形成<b><font color="red">巢狀迴圈</font>,巢狀迴圈會先從「最內層」的迴圈開始執行,執行完畢後再執行外層的迴圈</b>,下方的程式碼,會先印出>,巢狀迴圈會先從「最內層」的迴圈開始執行,執行完畢後再執行外層的迴圈,下方的程式碼,會先印出 b 的 1、2、3,印完後印出第一個 a 的 x,接著再次印出 b,依此類推。 ```python= for a in ['x','y','z']: for b in [1,2,3]: print(b) print(a) # 1 2 3 x 1 2 3 y 1 2 3 z ```