補充:基礎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()`
這篇教材是倉促間完工的,還有很多地方沒講到,請見諒。