# Python常用語法(1)
### ***python學起來並不難,難是難在讓你把教學看完***
### ***by 幻宇***
## 註解
在開始之前先來講一下怎麼在程式碼中插入註解,來方便我們閱讀,插入註解時只要在註解前面打上`#`,程式就會判斷`#`後面的內容不是程式碼,該功能只限與`#`的那一行
```python
print("Hello, World!")
# 輸出:Hello, World!
```
這樣可以讓我們更直觀的了解到程式碼的功能
## 變數
### 變數命名規則:
- 變數名稱只能用**字母**、**數字**和**底線**
- **第一個字母不能是數字**
- **不能用程式碼保留字**(if、print、for......)
### 變數指派
Python變數不用宣告,依指派值自動設定資料型態。
指派方法:
`變數名稱 = 指派值`
範例:
```python
a = 1
#可以多變數同時指派
a = b = c = 10
#同一行指派多個變數
name, number = ‘huanyu’, 24
```
## 文字輸入輸出
### 輸出
使用`print()`函數來輸出
```python
print("Hello, World!")
#也可以用變數
a = 123
print(a)
#123
```
### 輸入
使用`input()`函數輸入,輸入的資料,型態必為**字串(str)**
```python
ans = input("請輸入文字")
```
函數內部也可以不放提示文字
## 資料型態
Python 資料型態有以下三種
- **數值**型態(Numeric Data Types):整數int、浮點數float、布林值bool
- **字串**型態(String Data Types):字串str,字元chr
- **容器**型態(Container Types):列表list,字典dict,元組tuple,集合set
### 型態轉換函數
`int()`:轉為整數
`float()`:轉為浮點數
`str()`:轉為字串
`chr()`:轉為字元
## 運算式與運算子
### 運算式
遵守先乘除後加減,括號內先算等算術規則
### 運算子
這裡只會列出幾種常用的運算子,詳細內容將會整理在下一篇**python運算子(operator)**
- **算數**運算子(Arithmetic Operators)
`+`、`-`、`*`、`/`
- **比較**運算子(Comparison Operators)
`==`、`>=`、`<=`、`!=`
- **邏輯**運算子(Logical Operators)
`and`、`or`、`not`
- **賦值**(**指定**)運算子(Assignment Operators)
`=`、`+=`、`-=`、`*=`、`/=`
## if條件判斷
### if敘述
語法:
```
if 條件式:
程式區塊
```
條件式後需搭配冒號`:`
程式區塊以縮排方式處理(空四格,也就是一個`Tab`),同一層縮排視為同一程式區塊
範例:
```python
a = 2
b = 1
if a > b:
print("a>b")
```
### if...elif...
語法:
```
if 條件式:
程式區塊
elif 條件式:
程式區塊
```
`elif`是`else if`的簡寫的功能和`if`相同,必須接在`if`後面,elif`通常用在要判斷的事物不只一種可能結果的時候,而且`elif`可以同時存在好幾個
範例:
```python
a = 2
b = 1
if a > b:
print("a>b")
elif a < b:
print("a<b")
```
### if...else...
語法:
```
if 條件式:
程式區塊
else:
程式區塊
```
`else`可以解釋為其他,也就是說如果條件式結果都為`False`時就執行`else`底下的程式區塊,也就是所謂的**例外處理**
範例:
```python
a=1
if a==0:
print("1")
else:
print("0")
```
### if...elif...else...
將前面三種語法集合在一起的,這裡就不在多做解釋了
範例:
```python
a = 2
b = 1
if a > b:
print("a>b")
elif a < b:
print("a<b")
else:
print("a=b")
```
## for
### for次數迴圈
語法:
```
for 變數 in range(起始值,結束值,間隔值):
要執行程式碼內容
```
起始值預設為0,間隔值預設為1,兩者皆可省略不設,而變數則會被設為`range()`當時的值,這個變數也可以在迴圈內使用要注意不要和迴圈外的變數混淆
範例:
```python
for i in range(5):
print(i)
```
### for遍歷迴圈
語法:
```
for 變數 in 序列:
程式區塊
```
變數會依序設為序列中的元素,序列可為、字串、列表、元組、字典、集合,通常變數會再拿來使用
範例:
```python
for i in "Hello, World!":
print(i)
```
## while
語法:
```
while 條件式:
程式區塊
```
和`if`有些類似,差別在於`while`會重複執行程式區塊直到條件式為`False`,程式區塊執行完會回頭檢查條件式是否成立,若條件成立,程式區塊繼續執行,當然,你也可以不放條件式直接放`True`,他就會一直執行,也就是所謂的無限迴圈
範例:
```python
a = 1
b = 2
while a < b:
print("a < b")
```
## break 迴圈脫離
有時迴圈還未執行完,但因為某些原因要停止迴圈時,我們就會需要用到迴圈脫離的功能,也就是`break`,`break`會讓程式強制脫離當下正在執行的迴圈,但若有多層迴圈的話僅終止`break`所在的迴圈
```python
a = 1
while True:
print(a)
a += 1
if a == 10:
break
for i in range(4):
for n in range(4):
if i % 2 == 0:
break
print(i)
```
## continue 迴圈跳過
有時迴圈當下在執行的內容並不是我們想要的時候,就可以用迴圈跳過`continue`的功能直接執行下一個迴圈內容
範例:
```python
for i in range(11):
if i % 2 == 1:
continue
print(i)
```
## 實做練習
完成以下條件
1. 做一個簡單的計算機,功能是加減乘除
2. 不須重啟就能一直使用
3. 不要出現沒有回應的情況
運行結果範例:
```
加法代碼:1
減法代碼:2
乘法代碼:3
除法代碼:4
請輸入運算代碼1
請輸入數字1
請輸入數字1
2
請輸入運算代碼
```
## [下一篇](https://hackmd.io/@Huanyu763/Python運算子)
## [回到主頁](https://hackmd.io/@Huanyu763/home)