---
# System prepended metadata

title: Python

---

{%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

```





