python 內建資料結構-數值型

小吉猫發表於2024-03-23

內建數值型資料結構

int

整數 (int):在 Python 中,整數是沒有小數部分的數字。整數可以是正數、負數或零。Python 中的整數沒有大小限制,取決於記憶體區域的大小,可以表示任意大小的整數。

x = 10
y = -5
z = 0
print(x, y, z)  # 輸出: 10 -5 0

float

浮點數 (float):浮點數是帶有小數部分的數字,可以是正數、負數或零。只有雙精度型。

a = 3.14
b = -2.5
c = 1.2e3  # 1.2 * 10^3,即 1200.0
print(a, b, c)  # 輸出: 3.14 -2.5 1200.0

complex

複數 (complex):複數由實部和虛部構成,虛部用字母 "j" 表示。可以透過 complex() 函式建立複數。

m = 2 + 3j
n = complex(1, -4)
print(m, n)  # 輸出: (2+3j) (1-4j)

bool

布林值 (bool):布林值只有兩個取值,True 和 False,用於表示真和假。通常用於邏輯運算和條件判斷。可以和整數直接運算。

p = True
q = False
r = 10 > 5
print(p, q, r)  # 輸出: True False True

內建數值型別轉換

int()

int(x):將 x 轉換為整數。如果 x 是浮點數,則向下取整。

x = 3.8
y = int(x)
print(y)  # 輸出: 3

# 將字串轉換為整數:
num_str = "123"
num_int = int(num_str)
print(num_int)  # 輸出:123

# 將二進位制字串轉換為整數
num_str = "1010"
num_int = int(num_str, 2)  # 將二進位制字串轉換為整數
print(num_int)  # 輸出:10

# 將8進位制字串轉換為整數
num_str_oct = "12"
num_int_oct = int(num_str_oct, 8)  # 將8進位制字串轉換為整數
print(num_int_oct)  # 輸出:10

# 將16進位制字串轉換為整數
num_str_hex = "1A"
num_int_hex = int(num_str_hex, 16)  # 將16進位制字串轉換為整數
print(num_int_hex)  # 輸出:26

float()

float(x):將 x 轉換為浮點數。

a = 5
b = float(a)
print(b)  # 輸出: 5.0

complex()

complex(x):將 x 轉換為複數,實部為 x,虛部為 0。

m = 10
n = complex(m)
print(n)  # 輸出: (10+0j)

str()

str(x):將 x 轉換為字串。

num = 123
str_num = str(num)
print(str_num)  # 輸出: '123'

bool()

bool(x):將 x 轉換為布林值。如果 x 為 0、空字串、空列表等,則轉換為 False;否則轉換為 True。

a = 0
b = bool(a)
print(b)  # 輸出: False

c = 10
d = bool(c)
print(d)  # 輸出: True

數字處理函式

round()

round(): 四捨六入五取偶。它的語法為:round(number, ndigits),其中 number 是要四捨六入五取偶的數值,ndigits 是要保留的小數位數。當 ndigits 為負數時,round() 函式會將數值在十位、百位等位置進行四捨五入:

x = 3.7
result = round(x)
print(result)  # 輸出: 4

y = 2.34567
result = round(y, 2)
print(result)  # 輸出: 2.35

z = 2.5
result = round(z)
print(result)  # 在這種情況下,四捨五入到偶數,結果為 2。輸出: 2

a = -4.8
result = round(a)
print(result)  # 輸出: -5

b = 12345
result = round(b, -2)
print(result)  # 輸出: 12300

abs()

abs() 函式用於返回一個數的絕對值。

# 示例1:返回整數的絕對值
num1 = -10
abs_num1 = abs(num1)
print(abs_num1)  # 輸出:10

# 示例2:返回浮點數的絕對值
num2 = -3.14
abs_num2 = abs(num2)
print(abs_num2)  # 輸出:3.14

# 示例3:返回複數的絕對值
num3 = -4 + 3j
abs_num3 = abs(num3)
print(abs_num3)  # 輸出:5.0

sum()

sum() 函式用於計算可迭代物件中所有元素的總和。可迭代物件可以是列表、元組、集合等。

# 示例1:計算列表中所有元素的總和
list1 = [1, 2, 3, 4, 5]
sum_list1 = sum(list1)
print(sum_list1)  # 輸出:15

# 示例2:計算元組中所有元素的總和
tuple1 = (10, 20, 30, 40, 50)
sum_tuple1 = sum(tuple1)
print(sum_tuple1)  # 輸出:150

# 示例3:計算集合中所有元素的總和
set1 = {2, 4, 6, 8, 10}
sum_set1 = sum(set1)
print(sum_set1)  # 輸出:30

min()

min() 函式用於返回可迭代物件中的最小元素。

# 示例1:返回列表中的最小元素
list1 = [5, 3, 8, 1, 6]
min_list1 = min(list1)
print(min_list1)  # 輸出:1

# 示例2:返回元組中的最小元素
tuple1 = (10, 20, 5, 15)
min_tuple1 = min(tuple1)
print(min_tuple1)  # 輸出:5

# 示例3:返回字串中的最小字元
string1 = "hello"
min_string1 = min(string1)
print(min_string1)  # 輸出:'e'。字串的比較是基於字元的 Unicode 編碼順序進行的。

max()

max() 函式用於返回可迭代物件中的最大元素。

# 示例1:返回列表中的最大元素
list1 = [5, 3, 8, 1, 6]
max_list1 = max(list1)
print(max_list1)  # 輸出:8

# 示例2:返回元組中的最大元素
tuple1 = (10, 20, 5, 15)
max_tuple1 = max(tuple1)
print(max_tuple1)  # 輸出:20

# 示例3:返回字串中的最大字元
string1 = "hello"
max_string1 = max(string1)
print(max_string1)  # 輸出:'o'。 字串的比較是基於字元的 Unicode 編碼順序進行的。

pow()

pow() 函式用於計算一個數的冪,即求 x 的 y 次方。

# 示例1:計算整數的冪
result1 = pow(2, 3)
print(result1)  # 輸出:8

# 示例2:計算浮點數的冪
result2 = pow(3.5, 2)
print(result2)  # 輸出:12.25

# 示例3:計算負數的冪
result3 = pow(-2, 4)
print(result3)  # 輸出:16

# 示例4:計算複數的冪
result4 = pow(2+3j, 2)
print(result4)  # 輸出:(-5+12j)

divmod()

divmod() 函式用於同時返回兩個數的商和餘數,返回的結果是一個包含商和餘數的元組。

# 示例1:計算兩個整數的商和餘數
result1 = divmod(10, 3)
print(result1)  # 輸出:(3, 1)

# 示例2:計算兩個浮點數的商和餘數
result2 = divmod(7.5, 2.5)
print(result2)  # 輸出:(3.0, 0.0)

# 示例3:計算兩個負數的商和餘數
result3 = divmod(-15, 4)
print(result3)  # 輸出:(-4, 1)

math 模組

math 模組是 Python 標準庫中的一個數學函式庫,提供了許多數學函式和常量,用於進行數學運算和計算。

math.sqrt()

math.sqrt() 函式:返回一個數的平方根。

x = 16
result = math.sqrt(x)
print(result)  # 輸出: 4.0

y = 2.25
result = math.sqrt(y)
print(result)  # 輸出: 1.5

a = 3
b = 4
c = math.sqrt(a**2 + b**2)
print(c)  # 輸出: 5.0

math.floor()

math.floor() 函式是 math 模組中的一個函式,用於向下取整,即返回小於或等於給定數值的最大整數。在使用 floor() 函式之前,需要匯入 math 模組。

x = 3.7
result = math.floor(x)
print(result)  # 輸出: 3

y = -4.8
result = math.floor(y)
print(result)  # 輸出: -5

z = 5
result = math.floor(z)
print(result)  # 輸出: 5

math.ceil()

math.ceil() 函式是 math 模組中的一個函式,用於向上取整,即返回大於或等於給定數值的最小整數。它的語法為 math.ceil(x),其中 x 是要向上取整的數值。

x = 3.2
result = math.ceil(x)
print(result)  # 輸出: 4

y = 5
result = math.ceil(y)
print(result)  # 輸出: 5

z = -2.8
result = math.ceil(z)
print(result)  # 輸出: -2

a = 10
b = 3
result = math.ceil(a / b)
print(result)  # 輸出: 4

numbers = [2.5, 4.7, 8.1]
ceil_values = [math.ceil(num) for num in numbers]
print(ceil_values)  # 輸出: [3, 5, 9]

math.pi

math.pi 是 math 模組中提供的一個常量,表示數學中的圓周率 π,它的值約為 3.141592653589793。可以透過 math.pi 直接獲取圓周率的值。

pi_value = math.pi
print(pi_value)  # 輸出: 3.141592653589793

math.pow()

math.pow() 函式是 math 模組中提供的一個函式,用於計算一個數的指定次冪。它的語法為 math.pow(x, y),其中 x 是底數,y 是指數。math.pow() 函式返回 x 的 y 次冪。

# 計算 2 的 3 次冪:
result = math.pow(2, 3)
print(result)  # 輸出: 8.0

# 計算 3 的平方:
result = math.pow(3, 2)
print(result)  # 輸出: 9.0

# 計算 10 的 0 次冪(任何數的 0 次冪均為 1):
result = math.pow(10, 0)
print(result)  # 輸出: 1.0

# 計算 2 的 0.5 次冪(即開平方):
result = math.pow(2, 0.5)
print(result)  # 輸出: 1.4142135623730951

# 計算 -2 的 3 次冪:
result = math.pow(-2, 3)
print(result)  # 輸出: -8.0

math.e

math.e 是math模組中定義的一個常數,表示自然對數的底,也被稱為尤拉數。它是一個重要的數學常數,約等於2.71828。在數學和科學計算中經常出現,用於計算指數函式和自然對數等。

import math
print(math.e)  # 輸出:2.718281828459045

進位制轉換

bin()

bin() 函式用於將整數轉換為二進位制表示的字串。

# 示例1:將整數轉換為二進位制字串
num1 = 10
bin_num1 = bin(num1)
print(bin_num1)  # 輸出:'0b1010'

# 示例2:將負整數轉換為二進位制字串
num2 = -5
bin_num2 = bin(num2)
print(bin_num2)  # 輸出:'-0b101'

# 示例3:將二進位制字串表示的整數轉換為二進位制字串
binary_str = "101"
num3 = int(binary_str, 2)  # 將二進位制字串轉換為整數
bin_num3 = bin(num3)
print(bin_num3)  # 輸出:'0b101'

oct()

oct() 函式用於將整數轉換為八進位制表示的字串。

# 示例1:將整數轉換為八進位制字串
num1 = 10
oct_num1 = oct(num1)
print(oct_num1)  # 輸出:'0o12'

# 示例2:將負整數轉換為八進位制字串
num2 = -8
oct_num2 = oct(num2)
print(oct_num2)  # 輸出:'-0o10'

# 示例3:將八進位制字串表示的整數轉換為八進位制字串
oct_str = "17"
num3 = int(oct_str, 8)  # 將八進位制字串轉換為整數
oct_num3 = oct(num3)
print(oct_num3)  # 輸出:'0o17'

hex()

hex() 函式用於將整數轉換為十六進位制表示的字串。

# 示例1:將整數轉換為十六進位制字串
num1 = 16
hex_num1 = hex(num1)
print(hex_num1)  # 輸出:'0x10'

# 示例2:將負整數轉換為十六進位制字串
num2 = -255
hex_num2 = hex(num2)
print(hex_num2)  # 輸出:'-0xff'

# 示例3:將十六進位制字串表示的整數轉換為十六進位制字串
hex_str = "1A"
num3 = int(hex_str, 16)  # 將十六進位制字串轉換為整數
hex_num3 = hex(num3)
print(hex_num3)  # 輸出:'0x1a'

format()

format() 函式:透過格式化字串將一個整數以指定進製表示。 

在 Python 中,可以使用格式化字串的方式來輸出不同進位制的縮寫,常見的進位制縮寫如下:
二進位制:使用 b 表示,如 0b1101
八進位制:使用 o 表示,如 0o17
十六進位制:使用 x 表示,如 0x1A
num = 10
binary_str = format(num, 'b')
octal_str = format(num, 'o')
hex_str = format(num, 'x')
print(binary_str, octal_str, hex_str)  # 輸出:1010 12 a

參考文件

https://docs.python.org/zh-cn/3.12/library/stdtypes.html#/numeric-types-int-float-complex

相關文章