▌Python Data Types
資料類型 | 描述 | 範例 |
---|---|---|
int | 整數,表示沒有小數部分的數字 | 10, -5, 0 |
float | 浮點數,表示有小數點的數字 | 3.14, -2.5, 0.0 |
bool | 布林值,表示真或假 | True, False |
str | 字串,表示文本數據 | Hello, ‘Python’, 123 |
list | 有序的可變集合,使用方括號 | [1, 2, 3], [a, b, c] |
tuple | 有序的不可變集合,使用小括號 | (1, 2, 3), (x, y) |
dict | 鍵值對的無序集合,使用大括號 | {name: Alice, age: 25} |
set | 無序的唯一值集合,使用大括號 | {1, 2, 3}, {apple, banana} |
▌ Operations for Numbers
常見運算符(Operations)
運算符 | 描述 | 範例 | 結果 |
---|---|---|---|
+ |
加法 | 5 + 3 |
8 |
- |
減法 | 10 - 4 |
6 |
* |
乘法 | 6 * 7 |
42 |
/ |
除法,結果為浮點數 | 10 / 3 |
3.3333 |
// |
整數除法,取整數部分 | 10 // 3 |
3 |
% |
模數運算(取餘數) | 17 % 5 |
2 |
** |
指數運算 | 2 ** 3 |
8 |
round(2.5) # 結果是 2
round(3.5) # 結果是 4
為什麼?
- 2.5:它位於 2 和 3 之間,按照銀行家舍入法,它會被捨入到 2,因為 2 是偶數。
- 3.5:它位於 3 和 4 之間,它會被捨入到 4,因為 4 是偶數。
這種方法的主要目的是在大量數據處理時,減少四捨五入的偏差。當數據中大量出現 .5 的數字時,簡單的四捨五入總會向上或向下偏移,而 “五成雙” 規則可以平衡這些偏移。
數字相關的內建函數(Functions)
函數名稱 | 描述 | 範例 | 結果 |
---|---|---|---|
abs() |
取絕對值 | abs(-7) |
7 |
pow(x, y) |
計算 x 的 y 次方 |
pow(2, 3) |
8 |
min(x, y, ...) |
返回最小值 | min(1, 5, -3) |
-3 |
max(x, y, ...) |
返回最大值 | max(1, 5, -3) |
5 |
sum() |
計算數值的總和 | sum([1, 2, 3, 4]) |
10 |
— | — | — | — |
math.floor(x) | 返回不大於 x 的最大整數 | math.floor(3.9) | 3 |
math.ceil(x) | 返回不小於 x 的最小整數 | math.ceil(3.1) | 4 |
math.sqrt(x) | 返回 x 的平方根 | math.sqrt(16) | 4.0 |
math.pi | 圓周率常數 π | math.pi | 3.141592653589793 |
math.e | 自然對數的底數 e | math.e | 2.718281828459045 |
▌變數與賦值的基本概念:
概念 | 描述 | 範例 |
---|---|---|
變數 | 一個用來存儲資料的名稱,指向某個特定的值或物件。 | age = 25 |
賦值 | 將一個值指定給變數的過程,使用 = 符號進行賦值。 |
name = “Alice” |
多重賦值 | 同時將多個變數賦值,可以使用逗號分隔變數和值。 | a, b, c = 1, 2, 3 |
增強賦值運算符 | 用來在賦值時進行運算並更新變數的簡便方式。 | x += 5 等同於 x = x + 5 |
變數的參考 | 變數名稱指向的實際數據,而非數據本身;多個變數可以參考同一個物件。 | a = [1, 2, 3] b = a (b 參考同一個列表) |
變數 (Variable)
-
把變數理解為一個容器,用來裝載不同的數據類型,如整數、字串、列表等
-
變數的命名規則:
- 變數名稱必須以字母或底線(
_
)開頭。 - 變數名稱可以由字母、數字和底線組成,但不能以數字開頭。
- Python 中變數名稱是大小寫敏感的(
myVar
和myvar
是不同的變數)。 - 避免使用 Python 的保留字作為變數名稱(例如
if
,else
,for
,while
等)。
- 變數名稱必須以字母或底線(
賦值(Assignment)
- 賦值操作是將數值或表達式的結果存入變數中。Python 使用 = 符號來進行賦值操作。= 的左邊是變數名稱,右邊是要賦值的數據或表達式。
- 基本賦值:
x = 5 # 將 5 賦值給變數 x
y = x + 3 # 將 x 的值加上 3 的結果(8)賦值給 y
name = “Bob” # 將字串 “Bob” 賦值給變數 name
- 多重賦值:
a, b, c = 1, 2, 3 # 同時給 a, b, c 賦值
- 變數的參考(References)
a = [1, 2, 3]
b = a # b 和 a 都指向同一個列表
b.append(4) # 修改 b,也會影響 a,因為它們是同一個物件
print(a) # 輸出 [1, 2, 3, 4]
- 增強賦值運算符:將運算和賦值結合在一起
x = 5
x += 3 # 等價於 x = x + 3,x 現在是 8
x *= 2 # 等價於 x = x * 2,x 現在是 16
▌字串 string
- 定義:是由一個或多個字符組成的 通常用引號(單引號 ’ 或雙引號 ")括起來 print(”i said: ‘good’ ”)
- 規則:
- 有順序列,可以使用index & slicing & reverse
- 字串是 不可變的(immutable),也就是說,一旦字串創建後,無法改變其內容。
字串的基本操作
概念 | 描述 | 範例 |
---|---|---|
連接字串 | 使用 + 將兩個字串連接起來 |
result = "Hello" + " " + "World" → Hello World . But string can not +number |
重複字串 | 使用 * 重複字串 |
result = "ha" * 3 → hahaha |
索引index | 使用索引來訪問字串中的某個字符(如果已經知道要訪問字串是存在的) | greeting=Hello World greeting[0] → H (從 0 開始 ) |
切片slicing | 使用範圍獲取字串的一部分 | greeting[0:5] → Hello (包括索引 0 到 4) [::-1]=reserve #dlroW olleH [0:5:2] #Hlo |
字串長度 len() |
字串、列表、元組、字典 | len(“Python”) # 6 len(tuple_data) = (10, 20, 30) #3 len(Dictionary)={“name”: “Alice”, “age”: 20, “grade”: “A”} #3 |
檢查子字串 | 使用 in 檢查子字串是否存在 |
greeting = “Hello, how are you?” result = ‘Hello’ in greeting print(result) # 結果:True |
字串的處理方法
方法 | 描述 | 範例 |
---|---|---|
upper() |
所有字母轉換為大寫 | 'python'.upper() → 'PYTHON' |
lower() |
轉換為小寫 | 'PYTHON'.lower() → 'python' |
capitalize() |
字串的第一個字母轉為大寫 | 'hello'.capitalize() → 'Hello' |
strip() |
去除字串前後的空格或其他字符 | ' Hello '.strip() → 'Hello' |
replace() |
將字串中的某個子字串替換為另一個子字串 | 'apple'.replace('a', 'o') → 'opple' |
split() |
將字串按指定分隔符分割成一個列表 | 'a,b,c'.split(',') → ['a', 'b', 'c'] |
join() |
使用指定分隔符將列表中的元素合併成字串 | ','.join(['a', 'b', 'c']) → 'a,b,c' |
find() |
查找某個子字串的索引位置,找不到則返回 -1 (如果不知道要訪問的字串是否存在) | 'Hello'.find('l') → 2 |
count() |
計算某個子字串在字串中出現的次數 | 'banana'.count('a') → 3 |
list() |
分開每個單子 | list(‘one two’) → [’o’,’n’,’e’,’ ‘,’t’,’w’,’o’ ] |
format() |
使用 {} 作為佔位符,並用 format() 填充變數 |
|
f-string |
使用 f 字符串和 {} 來直接嵌入變數: |
sentence = f"My name is {name} and I am {age} years old." |
startswith() | startswith(prefix[, start[, end]]) | text = "Hello, World!” result = text.startswith(“Hello”) # true |
startswith() | 要檢查的子字串,可以是單個字串或字串的元組(tuple)。start(可選):檢查的起始位置,預設為 0。end(可選):檢查的結束位置,預設為字串的結尾 | result = text.startswith(“World”, 7) # 在索引 7 開始檢查# True |
endswith() | str.endswith(suffix[, start[, end]]) | result = text.endswith(“lo”, 0, 5) # 在索引 0 到 5 檢查,#True |
字串格式化
format() 方法 : 使用 {} 作為佔位符,並用 format() 填充變數:
sentence = “My name is {} and I am {} years old.”.format(Alice, 30)
→ “My name is Alice and I am 30 years old.”
f-string(Python 3.6+): 使用 f 字符串和 {} 來直接嵌入變數
sentence = f"My name is {name} and I am {age} years old."
→ “My name is Alice and I am 30 years old.”
原始字串(Raw String):若要避免字串中的特殊字符(如 \n 表示換行)被解釋,可以使用原始字串,前面加 r
raw_string = r"C:\Users\name" # 不會將 \ 作為轉義符