Python 全攻略 第3節:Chapter1-python Data Type 10~20

▌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) 計算 xy 次方 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 中變數名稱是大小寫敏感的(myVarmyvar 是不同的變數)。
    • 避免使用 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" * 3hahaha
索引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" # 不會將 \ 作為轉義符

3個讚