owned this note
owned this note
Published
Linked with GitHub
---
title: 簡介與基礎語法 - Python 教學
description: 中興大學資訊研究社1091學期程式分享會主題社課
tags: Python
---
###### [Python 教學/](/@NCHUIT/py)
# Python簡介與基礎語法
> [name=VJ][time= 109,10,6]
---
# 什麼是 Python?
Python 是一種高階程式語言,強調程式碼的可讀性、簡潔的語法。
相比於 C++、Java,Python 能讓開發者用更短(簡易)的程式碼做到一樣的結果。
---
## Python特色有哪些?
:heavy_check_mark: 好理解:Python 是一種解釋型語言,瞭解結構之後,非常好理解。
:heavy_check_mark: 好偷懶:Python 可以輕鬆使用各式各樣的函式,短短的程式碼輕鬆搞定。
:heavy_check_mark: 好維護:Python 的架構很明確,非常容易維護。
---
## Python缺點有哪些?
:heavy_check_mark: 速度慢:Python 為了功能,犧牲效能。
:heavy_check_mark: 強制縮排:自有的縮排規則,新手很容易忽略而導致錯誤。
###### *[參考來源](https://www.blink.com.tw/board/post/78610/)*
---
## Python 語法範例
```python=
# coding = utf-8
a = -1
b = True
c = 'word' #我是註解
d = [a,b,c]
print ('Hello world')
inputs = input ('Enter sth...')
```
---
### 其他語言(以C為例)
```c=
#include<stdio.h>
#include<stdbool.h>
int main(){
int a = -1;
bool b = true;
char c[] = "word"; //我是註解
typedef struct {int a; bool b; char *c;} list;
list d = {.a=a,.b=b,.c=c};
printf("Hello world\n");
char inputs[50];
printf("Enter sth..."); scanf("%s",inputs);
return 0;
}
```
---
總而言之,Python 比 C/C++、JAVA 等其他語言更高階,更貼合自然語言,語法更為簡單。並且有極大量的函式庫,在寫任何功能都可以很方便的使用。
---
## 環境設置
先下載[Python本體](https://www.python.org/downloads/),然後選一個IDE安裝,請參閱
- [本體安裝教學](https://medium.com/@ChunYeung/%E7%B5%A6%E8%87%AA%E5%AD%B8%E8%80%85%E7%9A%84python%E6%95%99%E5%AD%B8-1-%E5%A6%82%E4%BD%95%E5%AE%89%E8%A3%9Dpython-126f8ce2f967)
- [colab](https://colab.research.google.com/)
- [Pycharm安裝教學](https://medium.com/@ChunYeung/%E7%B5%A6%E8%87%AA%E5%AD%B8%E8%80%85%E7%9A%84python%E6%95%99%E5%AD%B8-1-%E5%A6%82%E4%BD%95%E5%AE%89%E8%A3%9Dpython-126f8ce2f967)
---
# 基礎語法
---
## 資料型態
###### *詳細參閱: [Python內建資料型態](https://docs.python.org/zh-tw/3/library/stdtypes.html)*
Python有這些常用的資料型態:
1. Number (數字)
- int (整数), float (浮點數), complex (複數)
2. String (字串)
3. List (串列)
4. Dictionary (字典)
5. Tuple (元组)
6. Set (集合)
---
Python宣告變數時不用像其他程式刻意指定型態
```python=
a = 100
b = True
c = 'word' #注意 Python 的字串用''或""都可以
d = [-1,False,c]
e = {'mon':'mother','dad':'father'}
```
### 練習01
宣告一個字串"practice 1"並列印出來
---
如果你想指定也是可以,指定資料型態會強制轉型
```python=
a = int(7942)
b = bool(0) #同 b = False 另 0,'',None 以外的變數會轉為 True
c = float(True) #同 c = 1.0
```
---
## 輸出和輸入
Python 的輸出和輸入沒有那麼複雜
```python=
print ('輸出內容')
a = input ('輸入提示') #input() 在程式中被當作一個字串變數
print ('你輸入了:', a)
```
---
使用 print 後都會自動換行,如果不想換行,要指定結尾字串
```python=
print ('第一個 print\n', end = '第一個 print 結尾') #\n: 換行
print ('第二個 print', end = None) #None 在這邊會換行
```
---
如果想要知道變數為什麼型態,請使用
```python=
print (type(a)) #type(): 用於取得變數資料型態
```
---
::: spoiler 練習 02
例
```python=
a = int(input('輸入整數:'))
print('你輸入了:\n',a)
```
:::
試寫一支程式讓使用者輸入***整數*** 然後輸出它。
---
::: spoiler 練習 03
例
```python=
a = input('輸入字串:') #input() 是字串
b = float(input('輸入浮點數:'))
print('你輸入了:\n',type(a),a,'\n和\n',type(b),b)
```
:::
試寫一支程式讓使用者輸入***字串*** 與***浮點數*** 然後輸出它們跟它們對應的資料類型。
---
## 運算元
Python 的運算遵循四則運算,會先乘除後加減
| 算數運算 | 加 | 減 | 乘 | 除 |
| -------- | --- | --- | --- | --- |
| 符號 | + | - | \* | / |
| 整除 | 取餘 | 次方 |
| ---- | ---- | ---- |
| // | % | ** |
---
| 邏輯運算 | 且 | 或 | 非 | 比較資料類型 |
| -------- | --- | --- | --- | ---- |
| 符號 | and | or | not | is |
| 算數邏輯運算 | 大於 | 小於 | 等於 |
| ------------ | ---- | ---- | ---- |
| 符號 | > | < | == |
| 不小於 | 不大於 | 不等於 |
| ------ | ------ | ------ |
| >= | <= | != |
---
### 範例
```python=
a = 3
b = 27
print(a+b, a-b, a*b, b/a, b%a)
#輸出: 30 -24 81 9.0 0
print(a>b, a<b, a==b, a>=b, a<=b)
#輸出: False True False False True
print((a**a is b) and (not (a == b)))
# 3**3 is 27 -> True
# not(a == b) -> not(False) -> True
# (True) and (True) -> True
#輸出: True
```
---
## 條件運算
| 語法 | 說明 |
| ------ | --- |
| `if()` | ``()``中條件成立時執行 |
| `elif()` | 上一個`if()`或`elif()`不成立時``()``中條件成立時執行,可無限接續 |
| `else` | 上一個`if()`或`elif()`不成立時執行 |
---
### 範例
```python=
a = input('輸入數字正負: ')
if(int(a)>0):
print (a,'是正數')
elif(int(a)<0):
print (a,'是負數')
else: print (a,'是 0') #如果執行區塊只有一行可以這樣縮寫
```
#### 單行簡寫
```python=
c = input('資訊社的簡寫是什麼? ')=='NCHUIT'
print ('正確') if (c) else print('不正確')
x = '喜' if (c) else '怒'
print (x)
```
---
::: spoiler 練習
例
```python=
w = float(input ('請輸入體重: '))
h = float(input ('請輸入身高: '))
bmi = w/h**2
print ('BMI:', bmi, '體重 ',end='')
if(bmi<18.5): print ('過輕')
elif(bmi<24): print ('正常')
elif(bmi<27): print ('過重')
elif(bmi<30): print ('輕度肥胖')
elif(bmi<35): print ('中度肥胖')
else: print ('重度肥胖')
```
或者...
```python=
bmi = float(input ('請輸入體重(kg): '))/(float(input ('請輸入身高(cm): '))/100)**2
print ('BMI:', bmi, '體重 ',end='')
print ('過輕') if(bmi<18.5) else print ('正常') if(bmi<24) else print ('過重') if(bmi<27) else print ('輕度肥胖') if(bmi<30) else print ('中度肥胖') if(bmi<35) else print ('重度肥胖')
```
:::
試寫一個 BMI 計算器 *[BMI-wiki](https://zh.wikipedia.org/wiki/%E8%BA%AB%E9%AB%98%E9%AB%94%E9%87%8D%E6%8C%87%E6%95%B8)*
BMI值計算公式: BMI = 體重(kg) / 身高^2^(m^2^)
例如一個52公斤的人,身高是155公分,則BMI為:
52/1.552^2^ = 21.6 (kg/m^2^)
體重正常範圍為 BMI=18.5~24
---
::: spoiler 練習
例
```python=
y = int(input ('輸入1個整數讓程式判斷是否為閏年: '))
if(y%4==0 and y%100!=0 or y%400==0): print ('閏年')
else: print ('平年')
```
:::
[閏年](https://zh.wikipedia.org/wiki/闰年)判斷,輸入1個整數讓程式判斷是否為閏年
閏年定義: 4的倍數是閏年,但100的倍數不是閏年,400的倍數是閏年
範例
```
輸入: 1600
輸出: 閏年
```
```
輸入: 1000
輸出: 平年
```
---
## 先這樣
提醒各位,Python 以外的語言(例如C)
字串記得用回 ```""```
<style>hr{display:none;}</style>