###### 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.常見的序列操作方法

#### 3.修改序列容器的內容

# Dark Theme CSS
{%hackmd theme-dark %}