# Deep Learning EP1 --- Python
-------------
要深入了解深度學習(Deep Learning,簡稱 DL),掌握 Python 語言幾乎是必不可少的。這不是因為其他編程語言不夠好,而是因為當今大多數人工智能(AI)開發工作都是用 Python 完成的。Python 的清晰、簡單是它會如此流行的原因,以下是常用的語法:
## I/O
```python
print() # 輸出 (加 "" 是字串)
input() # 輸入 (都是字串)
```
實際使用:
```python
a = int(input("請輸入a: ")) # a 收到的是 int (整數)
print(a) # 打印出 a
```
```bash
>> 請輸入a: 3
>> 3
```
## Variable (變數)
```python
a = 'a'
b = 1
PI = 3.14159
c = '你好1212'
d = True
e = False
```
嗯? 怎麼可以沒定義 int, char, bool, string? Python 可以動態定義,讚!
## 運算子
```python
# 賦值運算子
a = 1
b = 2
# 輸出各種運算結果
print(f"a + b = {a+b}") # 加法運算子,計算 a 和 b 的和
print(f"a * b = {a*b}") # 乘法運算子,計算 a 和 b 的乘積
print(f"a / b = {a/b}") # 除法運算子,計算 a 除以 b 的商(結果為浮點數)
print(f"a // b = {a//b}") # 整數除法運算子,計算 a 除以 b 的整數商
print(f"a % b = {a%b}") # 模除運算子,計算 a 除以 b 的餘數
print(f"b ** 2 = {b**2}") # 冪運算子,計算 b 的 2 次方
print(f"b >> a = {b>>a}") # 右移位運算子,將 b 的二進位表示向右移動 a 位
print(f"b << a = {b<<a}") # 左移位運算子,將 b 的二進位表示向左移動 a 位
print(f"a ^ b = {a^b}") # 位異或運算子,對 a 和 b 的二進位表示進行異或操作
print(f"a | b = {a|b}") # 位或運算子,對 a 和 b 的二進位表示進行或操作
print(f"a & b = {a&b}") # 位與運算子,對 a 和 b 的二進位表示進行與操作
```
```bash
a + b = 3
a * b = 2
a / b = 0.5
a // b = 0
a % b = 1
b ** 2 = 4
b >> a = 1
b << a = 4
a ^ b = 3
a | b = 3
a & b = 0
```
## 條件
若真才做事,假則做別件事
```python
a = 1
b = 2
if a == b:
print("a==b")
elif a > b:
print("a>b")
else:
print("Null")
```
```bash
>> Null
```
## 迴圈
可以重複執行多次,有`for`跟`while`
`for`迴圈主要可以控制要幾次、從哪到哪。
```python=
#語法是: for i in range(開始(默認0),結尾,間隔(默認1))
for ii in range(5):
print(ii)
```
```bash=
>> 0
>> 1
>> 2
>> 3
>> 4
```
### While 迴圈
`while` 迴圈會持續執行,直
到滿足某個條件為止。
```python
i = 0
while i < 5:
print(i)
i += 1
```
```bash
>> 0
>> 1
>> 2
>> 3
>> 4
```
## 函式 (Functions)
函式是一段組織好的,可重複使用的代碼,用於執行一項特定任務。
```python
def greet(name):
return f"Hello, {name}!"
print(greet("Alice"))
```
```bash
>> Hello, Alice!
```
## 列表 (Lists)
列表是 Python 中一種用於存儲一系列項目的資料結構。
```python
my_list = [1, 2, 3, 4, 5]
print(my_list[0]) # 輸出第一個元素
my_list.append(6) # 添加元素到列表末尾
print(my_list)
```
```bash
>> 1
>> [1, 2, 3, 4, 5, 6]
```
## 字典 (Dictionaries)
字典是一種存儲鍵值對的資料結構。
```python
my_dict = {"apple": "蘋果", "banana": "香蕉"}
print(my_dict["apple"]) # 輸出 '蘋果'
my_dict["orange"] = "橙子" # 添加新的鍵值對
print(my_dict)
```
```bash
>> 蘋果
>> {'apple': '蘋果', 'banana': '香蕉', 'orange': '橙子'}
```
## 錯誤處理 (Error Handling)
處理錯誤和異常是寫穩健程式的重要部分。
```python
try:
# 嘗試執行一些程式碼
x = 1 / 0
except ZeroDivisionError:
# 如果發生除以零的錯誤,則執行此塊
print("Cannot divide by zero")
```
```bash
>> Cannot divide by zero
```
下一章,會介紹進階用法! :)
喜歡請按 :+1: