Trong loạt bài trước, bạn đã làm quen với khái niệm BIẾN TRONG PYTHON. Ở bài này, chúng ta sẽ tìm hiểu về KIỂU DỮ LIỆU SỐ trong Python, một trong những kiểu dữ liệu cực kì quan trọng!
Số là gì?
Con số xuất hiện khắp nơi trong cuộc sống chúng ta. Chúng ta thường xuyên gặp phải các con số trong cuộc sống hàng ngày.
Tháng này có 30 hay 31 ngày? Mai đi chợ bó rau muốn mua 3000 đồng hay là 3500 đồng? Bài thi hôm bữa được 9,1 điểm hay là 1,9? Cái bánh này mình ăn ½ hay là ¾. Chúng ta có thể thấy, số không còn là điều gì xa lạ. Và đương nhiên, điều này cũng áp dụng cho ngôn ngữ lập trình Python.
Trong Python, chúng ta cũng có rất nhiều kiểu dữ liệu số. Một số kiểu dữ liệu cơ bản như số nguyên (integers), số thực (floating-point), phân số (fraction), số phức (complex). Bài viết này sẽ giới thiệu các kiểu dữ liệu này chi tiết hơn.
Kiểu dữ liệu số nguyên
Kiểu dữ liệu số nguyên (integers) bao gồm các số nguyên dương (1, 2, 3, ...) và số nguyên âm (-1, -2, -3) cùng số 0. Trong Python, kiểu dữ liệu số nguyên không có gì khác biệt.
Ví dụ: Gán giá trị cho một biến a
là 4 và xuất ra kiểu dữ liệu của a
.
a = 4 # gán giá trị của biến a là số 4, là một số nguyên
print(a) # 4
print(type(a)) # (số nguyên thuộc lớp ‘int’ trong Python)
Một điểm đáng chú ý trong Python 3.X đó là kiểu dữ liệu số nguyên là vô hạn. Điều này cho phép bạn tính toán với những số cực kì lớn, điều mà đa số các ngôn ngữ lập trình khác không thể làm được.
Kiểu dữ liệu số thực
Kiểu dữ liệu số thực (floating-point) là tập hợp các số nguyên và số thập phân như 1, 1.4, -123, 69.96, ...
Ví dụ: Gán giá trị của biến f
là 1.23 và xuất ra kiểu dữ liệu của f
.
f = 1.23 # gán giá trị của biến f là số 1.23, là một số thực
print(f) # 1.23
print(type(f)) # (số thực thuộc lớp ‘float’ trong Python)
Lưu ý: Trong Python, thường khi chúng ta viết số thực, phần nguyên và phần thập phân được tách nhau bằng dấu phẩy (,). Thế nhưng trong Python, dấu phẩy (,) này được thay thế thành dấu chấm (.)
Số thực trong Python có độ chính xác xấp xỉ 15 chữ số phần thập phân. Do đó, nếu bạn muốn có kết quả chính xác cao hơn, hãy sử dụng thư viện decimal
.
Kiểu dữ liệu phân số
Phân số gồm hai phần là tử số và mẫu số.
Để tạo một phân số trong Python, ta sử dụng hàm Fraction
với cú pháp sau:
from fractions import Fraction
# Tạo phân số 1/4, 3/9, 3/4
print(Fraction(1, 4)) # Fraction(1, 4)
print(Fraction(3, 9)) # Fraction(1, 3)
print(type(Fraction(3, 4))) # (phân số thuộc lớp Fraction)
Tuy nhiên, việc tạo một phân số với mẫu số bằng 0 sẽ gây lỗi.
from fractions import Fraction
print(Fraction(1, 0)) # ZeroDivisionError: Fraction(1, 0)
print(Fraction(1.55, 0)) # TypeError: both arguments should be Rational instances
Kiểu dữ liệu số phức
Số phức gồm hai phần là phần thực và phần ảo.
Để tạo một số phức trong Python, ta sử dụng hàm complex
với cú pháp sau:
# Tạo một số phức
a = complex(, )
# Ví dụ
b = complex(2, 1) # phần thực là 2, phần ảo là 1
Bạn cũng có thể gán giá trị số phức cho một biến:
a = 3 + 1j # gán giá trị cho biến a là số phức 3 + 1j (phần thực là 3, phần ảo là 1)
Để xuất ra phần thực và phần ảo của một biến số phức, ta sử dụng cú pháp sau:
a = 2 + 1j # ví dụ số phức 2 + 1j
print(a.real) # 2.0 (phần thực)
print(a.imag) # 1.0 (phần ảo)
Các toán tử cơ bản với kiểu dữ liệu số trong Python
Trong Python, chúng ta có thể thực hiện các phép tính cơ bản với kiểu dữ liệu số như cộng, trừ, nhân, chia, chia nguyên, chia dư và lũy thừa.
a = 8
b = 3
print(a + b) # 11 (cộng)
print(a - b) # 5 (trừ)
print(a * b) # 24 (nhân)
print(a / b) # 2.6666666666666665 (chia)
print(a // b) # 2 (chia nguyên)
print(a % b) # 2 (chia dư)
print(a ** b) # 512 (lũy thừa)
Trong khi thực hiện các phép tính với số thực, hãy lưu ý rằng có thể xảy ra sai số do cách lưu trữ số thập phân của máy tính. Do đó, hãy cân nhắc giữa sự tiện lợi và chính xác khi chọn kiểu dữ liệu phù hợp.
Thư viện math trong Python
Thư viện math trong Python cung cấp rất nhiều hàm tính toán liên quan đến toán học.
Để sử dụng thư viện math, ta sử dụng lệnh import math
.
Dưới đây là một số hàm thường được sử dụng trong thư viện math:
trunc(x)
: Làm tròn sốx
về phần nguyên gần nhất.fabs(x)
: Trả về giá trị tuyệt đối của sốx
.sqrt(x)
: Trả về căn bậc hai của sốx
.gcd(a, b)
: Trả về ước chung lớn nhất của hai sốa
vàb
.lcm(a, b)
: Trả về bội chung nhỏ nhất của hai sốa
vàb
.ceil(x)
: Làm tròn sốx
lên thành số nguyên gần nhất.
Ví dụ:
import math
print(math.trunc(3.9)) # 3
print(math.fabs(-3)) # 3.0
print(math.sqrt(16)) # 4.0
print(math.gcd(6, 4)) # 2
print(math.lcm(4, 5)) # 20
print(math.ceil(9.4)) # 10
Kết luận
Trong bài viết này, chúng ta đã tìm hiểu về các kiểu dữ liệu số trong Python. Các kiểu dữ liệu số nguyên, số thực, phân số và số phức đều rất quan trọng trong lập trình. Chúng ta đã tìm hiểu các phép toán cơ bản và cách sử dụng thư viện math để thực hiện các phép tính toán phức tạp hơn.
Trong bài tiếp theo, chúng ta sẽ tìm hiểu về kiểu dữ liệu chuỗi trong Python, một kiểu dữ liệu cực kì quan trọng.
Nếu bạn có bất kỳ câu hỏi hoặc ý kiến nào, hãy để lại bình luận để chúng ta có thể cùng nhau phát triển bài viết tốt hơn. Cảm ơn bạn đã đọc bài viết và hãy tiếp tục học tập và thực hành để nâng cao khả năng lập trình của mình!
Thảo luận: Nếu bạn có bất kỳ câu hỏi hoặc thắc mắc nào về khóa học, hãy đặt câu hỏi trong phần bình luận bên dưới hoặc trong mục Hỏi & Đáp trên trang Howkteam.com để nhận sự hỗ trợ từ cộng đồng.