---
# System prepended metadata

title: 補充：基礎Python

---

補充:基礎Python
===
如果你已經至少會陣列、迴圈，再來看這篇會比較好。
這邊假設讀者都看過之前的c++教材，或已經有相關知識了。
python的輸入:
```python=
a=input()#跟getline很像
```
你輸入的資料其實是存在input裡面，所以要```a=input()```把值提出來。
這邊要注意python的變數是不用預設型態的，但是input()的型態是字串，無論你輸入1、5.5、aaaa都是字串型態。
但是python要轉變數型態也非常容易，只要記幾個常用的就好。
```python=
int(a)#轉整數
float(a)#轉浮點數
str(a)#轉字串
list(a)#轉陣列，字串的話就是每個字一格
```
輸出用`print()`，python已經幫你準備好換行了，所以其實是輸出你要輸出的東西加上`\n`
如果你輸入也想像c++的cin一樣讀到空白前就結束，那用法如下:
```python=
x,y=input().split()
```
輸入4 3的話，x="4" y="3"
split()的意思是的意思是以括號內的東西做切割，預設是空白。

五則運算:
python的五則運算與c\++相似，但是除法會保留小數。像是5/2就是2.5。
如果要無條件捨去，使用//，5//2=2。
c++的//是註解，而python的註解是#。

邏輯運算子
跟c++基本差不多，但and、or、not更直觀:
c\++:
```c++=
a && b
a || b
!a
```
python:
```python=
a and b
a or b
not a
```
if:
不用小括號、大括號:
```python=
if 條件:
    程式碼#不能空著，一定要縮排
```
else 跟else if:
```python=
if 條件:
    程式碼
elif 條件:#可簡寫成elif
    程式碼
else:
    程式碼
```

for與while迴圈:
直接對比會比較方便
c\++:
```c++=
for(int i=0;i<5;i++){
    cout<<i<<"\n";
}
while(1){
    cout<<"6";
}
```
python:
```python=
for i in range(5):
    print(i)
while 1:
    print(6,end="")#end=""表示輸出完之後要輸出什麼，預設是\n，也就是自動換行
```
range()括號內可以有1~3個數字，當只有一個數字時:
range(5)=(0,1,2,3,4)
也就是從0開始到5結束，**注意，不包含5**。
當兩個數字時:
range(起始值，終止值)
range(2,4)=(2,3)
當三個數字時:
range(起始值，終止值，每次加多少)
range(3,7,2)=(3,5)

陣列:
宣告:
`a=[]`
與c++不同的是，你如果輸入a[2]不代表a有兩個空格，而是a內有2這個元素。
python的陣列可以包含不同型態的資料，甚至是一個陣列:
`a=[4,"str",4.5,[2,3]]`
從最後面加入:
`a.append(值)`
取出:
`a.pop(位置，預設是最後面)#有回傳值`
插入:
`a.insert(位置)#在這個位置後的元素會往後挪`
移除(值):
`a.remove(值，不是位置)`
要判斷元素是否在陣列內:
`x in a:#回傳1或0`
數某個元素出現的次數:
`a.count(x)`
長度:
`len(a)`
最大\/最小值:
```
max(a)
min(a)
```
排序:
`a.sort()`
反轉:
`a.reverse()`
這篇教材是倉促間完工的，還有很多地方沒講到，請見諒。