---
# System prepended metadata

title: Python 基礎語法
tags: [python]

---

###### tags: `python`
# Python 基礎語法

### Out put方式
```python=
print('Hello world')
print(*array)  #可列出陣列中所有數值
```

### Python宣告變數不需預先指定型態，會依照初始值決定變數型態。
```python=
iv = 10
fv = 12.3
cv = 3 + 5j
sv = "hello python"
bv = True
nv = None                 #空值宣告方式

print(iv,fv,cv,sv,bv)
print(type(iv))            #int
print(type(fv))            #float
print(type(cv))            #complex
print(type(sv))            #str
print(type(bv))            #bool
print(nv)                  #none
print(isinstance(cv,str)) #判斷是否為特定型別  此例為判斷是否為str
```
### Input
```python=
name = input('Hello, what is your name?')  # input 讓使用者輸入
print('Hi',name)
```


### if...elif 條件式
須注意**else if**在python寫作**elif**
程式區塊以**縮排**區分
條件後須加上--> **:**
```python=
import random                    #引入亂數模組
grade = random.randint(0,100)    #詳細函式看下方

if grade >= 90:
    print(grade,'GOOD')
elif grade >=60:
    print(grade,'not bad')
elif grade <60:
    print(grade,'need more hard')
else:
    print(grade,'Loser!')
```

### 亂數
random()是無法直接使用的，需引入random模組，通過random靜態對象調用該方法。
#### 引入模組
```python=
import random
```
#### 相關函式
```python=
print( random.randint(1,10) )        # 產生1~10之間的整數
print( random.random() )             # 展生0~1之間的浮點數
print( random.uniform(1.1,5.4) )     # 產生1.1~5.4之間的浮點數
print( random.choice('tomorrow') )   # 從陣列中隨機取得一個元素
print( random.randrange(1,100,2) )   # 產生1~100之間間隔為2的隨機整數
```
### 布林運算 And or Not
| 運算子 | 效果 | 
| --------  | -------- |
| a or b    | A或B其中一個條件成立就回傳True              |
| a and b	| A或B兩個條件都成立才回傳True                |
| not A     | 如果A為True，則回傳False，反之則回傳True     |

```python=
h = 180
w = 85
grade = 80

if h > 175 or w > 80:
    print('big guy')


if grade > 70 and grade < 90:
    print('normal')
```

# 陣列型態
### Range

Range可以創造特定範圍內的整數，不可修改

Range(stop)
stop：停止點

Range(start, stop)
start：起始點
stop：停止點

Range(start, stop, step)
start：起始點
stop：停止點
step：間隔

```python=
r1 = range(10)        #r1[0]=0,r1[1]=1
r2 = range(5,50,5)    #r2[0]=5 , r2[1] = 10 , r2[2] = 15
```

### Tuple
可用來存放一組資料，型態可各自不相同，個數也不限
創造後無法修改
值與值之間以 **,** 作區隔

```python=
t1 = 10 , 20                #t1[0] = 10 , t1[1] = 20
t2 = 50 , 'Hello world'     #t2[0] = 50 , t2[1] = 'Hello World' 

```

### List
就是陣列，資料型態不須相同
可做修改
```python
a1 = [1,'aaa',120.2]    #a1[0]= 1 , a1[1] = 'aaa'
```

### String
**split** 可將一個字串用指定的方式切割成陣列
**join** 可將一個陣列用指定的方式組合成字串
```python=
str1 = 'hello world'
str2 = str1

str2 += ' Mask'        #同str2 = str2 + ' Mask'，使用 "+" 組合兩個字串
print(str2)

result_spl = str2.split(' ')    #將字串用指定的方式切割成陣列
print(result_spl[2])            # result_spl[2] = Mask

result_joi = '...'.join(result_spl)   #將陣列用指定的方式組合成字串
print(result_joi)                # hello...world...Mask
```

### 序列型別的操作
#### 1.取出特定內容
seq[start:stop:step]
```python=
a1 = [1,2,3,4,5,6,7,8,9,10]
a2 = a1[0:2]        #取出a1[0]~a1[2]的值放到a2
print(*a2)          #1 2 3
```
#### 2.常見的序列操作方法
![](https://i.imgur.com/XE4rgvH.png)
#### 3.修改序列容器的內容
![](https://i.imgur.com/QHIEGgm.png)



# Dark Theme CSS

{%hackmd theme-dark %}