# python 基礎
## variable/data type
int: 整數
str: 字串
float: 浮點數/小數
bool: 布林值
list: 清單/陣列
tuple: 元組/數組
set: 集合
dict: 字典
```python!=
type(1) #int
type("Hello world") #str
type(1.12) #float
type(True) #bool
l = [1, "a", 1.1]
type(l) # list
t = (1, 2, 3)
type(t) #tuple
s = {1, 2, 3}
type(s) # set
d = {
1: "a",
'b': 'c'
}
type(d) # dict
```
## input/output
```python!=
print("這是輸出")
print(1)
print(1.12)
# 這是輸出
# 1
# 1.12
```
python的print會在輸出後面換行
```python!
print("hello", "world", 12) #hello world 12
```
python的print可以輸出多個物件,且不限制型態
```python!
print(data, sep=" ", end='\n')
```
我們可以透過sep這個參數來調整透過什麼字串來分隔物件,end來調整以什麼作為結尾,"\n"為換行。
### variable
加設我們有個盒子然後我們把它命名成a,這個a可以存一些東西,此時他就稱為variable(變數),這個變數可以存我們之前講的所有資料型態,也可以把別的變數存到新的變數裡,這個動作叫做賦值(assign),注意這裡將一個變數存到新的變數的過程中,只是同一個箱子被貼上不同的標籤(變數名稱),而如果想要兩個不同的箱子存一樣的東西則需要使用copy(某些時候使用deepcopy比較安全)。
### input
```python!=
a = input("請輸入資料: ")
```
上述代碼會輸出input裡面的資料(可以是空的)並等待使用者輸入內容,並將輸入的內容做為字串賦值到a裡面。
### casting 型態轉換
假設我們輸入了1,那input給的會是一個字串
```python=
a = input()
print(type(a)) # str
```
那如果我們需要輸入一個數字而不是字串怎麼辦,這個時候我們可以透過casting來轉型態。
```python=
a = input()
print(type(a)) # str
a = int(a)
print(type(a)) # int
```
如果沒辦法轉成該型態就會噴錯,ex:
```python=
a = int('s') # ValueError: invalid literal for int() with base 10: 's'
```
### list
list類似於其他程式語言的陣列,但其成員不限定資料型態以及整個陣列的大小不固定,這也是python相較於其他語言較為簡單的原因之一,但維護好list也是python重要的一環。
#### 宣告
list在宣告的時候需要打上`[]`或是剛剛提到的casting,而我們也可以在裡面先初始化內容
```python=
l = []
l = list()
l = [1, 2, 3]
l = [i for i in range(10)] # 之後會教迴圈
l = [i for i in range(10) if i % 2 == 0] # 之後會教條件判斷
```
#### 查詢
```python=
l = [1, 2, 3, 4, 5, 6]
print(l) # [1, 2, 3]
print(l[0]) # 1
print(l[2]) # 3
print(l[6]) # index out of range
print(l[-1]) # 6
print(l[0:2]) # [1, 2]
print(l[3:]) # [4, 5, 6]
print(l[:3]) # [1, 2, 3]
print(l[1:4:2]) # [2, 4]
print(l[::2]) # [1, 3, 5]
for i in l:
print(i) # 一樣之後會教
# 1
# 2
# 3
# 4
# 5
# 6
```
#### 新增
```python=
l = [1, 2, 3]
print(l) # [1, 2, 3]
l.append(4) # [1, 2, 3, 4]
l.insert(2, 6) # [1, 2, 6, 3, 4]
l.extend([1, 2, 3]) # [1, 2, 6, 3, 4, 1, 2, 3]
```
#### 刪除
```python=
l = [1, 2, 3]
print(l) # [1, 2, 3, 4, 5, 6, 7, 8]
del l[2] # [1, 2, 4, 5, 6, 7, 8]
l.remove(2) # [1, 4, 5, 6, 7, 8]
l.pop() # [1, 4, 5, 6, 7]
l.clear() # []
del l # NameError: name 'l' is not defined
```
#### 修改
```python=
l = [1, 2, 3]
l[1] = 10 # [1, 10, 3]
```