Kiểu dữ liệu là một khái niệm quan trọng trong lập trình, giúp xác định loại dữ liệu mà một biến có thể lưu trữ và các phép toán có thể thực hiện trên dữ liệu đó. Python là một ngôn ngữ lập trình mạnh mẽ và linh hoạt, hỗ trợ nhiều kiểu dữ liệu khác nhau. Bài viết này sẽ hướng dẫn chi tiết về các kiểu dữ liệu trong Python, bao gồm các chủ đề như kiểu dữ liệu là gì, các kiểu dữ liệu trong Python, các loại kiểu dữ liệu trong Python, chuyển đổi kiểu dữ liệu trong Python, và các hàm chuyển đổi kiểu dữ liệu.
Kiểu dữ liệu là gì?
Kiểu dữ liệu (data type) là một phân loại của các loại dữ liệu cụ thể bởi một giá trị nhất định hoặc các loại phép toán toán học hoặc logic có thể thực hiện trên dữ liệu đó. Trong Python, các biến là các đối tượng của các lớp này, và các kiểu dữ liệu thực sự là các lớp vì mọi thứ đều là đối tượng.
Các kiểu dữ liệu trong Python
Python có nhiều kiểu dữ liệu tích hợp sẵn, bao gồm các kiểu dữ liệu số, chuỗi, danh sách, tuple, từ điển, tập hợp, và kiểu dữ liệu đặc biệt như NoneType. Dưới đây là một số kiểu dữ liệu phổ biến trong Python:
- Numeric (Số học): int, float, complex
- String (Chuỗi): str
- Sequence (Dãy): list, tuple, range
- Binary (Nhị phân): bytes, bytearray, memoryview
- Mapping (Ánh xạ): dict
- Boolean (Boolean): bool
- Set (Tập hợp): set, frozenset
- None (Không có giá trị): NoneType
Các loại kiểu dữ liệu trong Python
Kiểu dữ liệu số (Numeric Data Types)
Kiểu dữ liệu số trong Python được sử dụng để lưu trữ các giá trị số. Các giá trị số bao gồm số nguyên (integer), số thực (floating-point), và số phức (complex).
- int: Lưu trữ các số nguyên, không giới hạn độ dài.
- float: Lưu trữ các số thực, chính xác đến 15 chữ số thập phân.
- complex: Lưu trữ các số phức, có dạng
a + bj
vớia
vàb
là các số thực vàj
là đơn vị ảo.
Ví dụ về kiểu dữ liệu số
python
num1 = 5
print(num1, 'là kiểu', type(num1))
num2 = 2.0
print(num2, 'là kiểu', type(num2))
num3 = 1 + 2j
print(num3, 'là kiểu', type(num3))
Kiểu dữ liệu chuỗi (String Data Type)
Chuỗi là một dãy các ký tự được đặt trong dấu ngoặc đơn hoặc dấu ngoặc kép. Python hỗ trợ các ký tự Unicode.
Ví dụ về kiểu dữ liệu chuỗi
python
name = 'Python'
print(name)
message = "Python for beginners"
print(message)
Kiểu dữ liệu dãy (Sequence Data Types)
Dãy là một tập hợp các mục được sắp xếp. Python có ba kiểu dữ liệu dãy chính: list, tuple, và range.
- list: Danh sách là một dãy các mục có thể thay đổi, được đặt trong dấu ngoặc vuông
[]
. - tuple: Tuple là một dãy các mục không thể thay đổi, được đặt trong dấu ngoặc đơn
()
. - range: Range là một dãy các số nguyên, thường được sử dụng trong vòng lặp.
Ví dụ về kiểu dữ liệu dãy
python
# List
fruits = ["apple", "banana", "cherry"]
print(fruits)
# Tuple
coordinates = (10.0, 20.0)
print(coordinates)
# Range
numbers = range(5)
print(list(numbers))
Kiểu dữ liệu nhị phân (Binary Data Types)
Python hỗ trợ các kiểu dữ liệu nhị phân như bytes, bytearray, và memoryview.
- bytes: Lưu trữ các dãy byte không thể thay đổi.
- bytearray: Lưu trữ các dãy byte có thể thay đổi.
- memoryview: Cung cấp một giao diện để truy cập vào bộ nhớ của các đối tượng khác.
Ví dụ về kiểu dữ liệu nhị phân
python
# Bytes
data = b"Hello"
print(data)
# Bytearray
data = bytearray(5)
print(data)
# Memoryview
data = memoryview(bytes(5))
print(data)
Kiểu dữ liệu ánh xạ (Mapping Data Type)
Kiểu dữ liệu ánh xạ trong Python là từ điển (dictionary), lưu trữ các cặp khóa-giá trị.
Ví dụ về kiểu dữ liệu ánh xạ
python
person = {"name": "John", "age": 30}
print(person)
Kiểu dữ liệu boolean (Boolean Data Type)
Kiểu dữ liệu boolean trong Python chỉ có hai giá trị: True và False.
Ví dụ về kiểu dữ liệu boolean
python
is_active = True
print(is_active, 'là kiểu', type(is_active))
Kiểu dữ liệu tập hợp (Set Data Type)
Tập hợp là một tập hợp các mục duy nhất, không có thứ tự.
Ví dụ về kiểu dữ liệu tập hợp
python
student_ids = {112, 114, 116, 118, 115}
print(student_ids)
Kiểu dữ liệu None (None Data Type)
NoneType là kiểu dữ liệu đặc biệt trong Python, đại diện cho giá trị không có giá trị.
Ví dụ về kiểu dữ liệu None
python
value = None
print(value, 'là kiểu', type(value))
Chuyển đổi kiểu dữ liệu trong Python
Chuyển đổi kiểu dữ liệu là quá trình chuyển đổi dữ liệu từ kiểu này sang kiểu khác. Python hỗ trợ hai loại chuyển đổi kiểu dữ liệu: chuyển đổi ngầm định (implicit conversion) và chuyển đổi tường minh (explicit conversion).
Chuyển đổi ngầm định (Implicit Type Conversion)
Chuyển đổi ngầm định là khi Python tự động chuyển đổi một kiểu dữ liệu sang kiểu khác mà không cần sự can thiệp của người dùng.
Ví dụ về chuyển đổi ngầm định
python
a_int = 1
b_float = 1.0
c_sum = a_int + b_float
print(c_sum)
print(type(c_sum))
Chuyển đổi tường minh (Explicit Type Conversion)
Chuyển đổi tường minh, còn được gọi là ép kiểu, là khi người dùng tự chuyển đổi kiểu dữ liệu của một đối tượng sang kiểu dữ liệu khác bằng cách sử dụng các hàm chuyển đổi tích hợp sẵn như int()
, float()
, str()
, v.v.
Ví dụ về chuyển đổi tường minh
python
num_string = '12'
num_integer = 23
print("Kiểu dữ liệu của num_string trước khi ép kiểu:", type(num_string))
# Ép kiểu tường minh
num_string = int(num_string)
print("Kiểu dữ liệu của num_string sau khi ép kiểu:", type(num_string))
num_sum = num_integer + num_string
print("Tổng:", num_sum)
print("Kiểu dữ liệu của num_sum:", type(num_sum))
Các hàm chuyển đổi kiểu dữ liệu
Python cung cấp nhiều hàm chuyển đổi kiểu dữ liệu để chuyển đổi giữa các kiểu dữ liệu khác nhau.
Các hàm chuyển đổi kiểu dữ liệu phổ biến
int()
: Chuyển đổi một giá trị sang kiểu số nguyên.float()
: Chuyển đổi một giá trị sang kiểu số thực.str()
: Chuyển đổi một giá trị sang kiểu chuỗi.bool()
: Chuyển đổi một giá trị sang kiểu boolean.list()
: Chuyển đổi một giá trị sang kiểu danh sách.tuple()
: Chuyển đổi một giá trị sang kiểu tuple.set()
: Chuyển đổi một giá trị sang kiểu tập hợp.dict()
: Chuyển đổi một giá trị sang kiểu từ điển.
Ví dụ về các hàm chuyển đổi kiểu dữ liệu
python
# Chuyển đổi sang số nguyên
x = int("10")
print(x, 'là kiểu', type(x))
# Chuyển đổi sang số thực
y = float("10.5")
print(y, 'là kiểu', type(y))
# Chuyển đổi sang chuỗi
z = str(10)
print(z, 'là kiểu', type(z))
# Chuyển đổi sang boolean
a = bool(1)
print(a, 'là kiểu', type(a))
# Chuyển đổi sang danh sách
b = list((1, 2, 3))
print(b, 'là kiểu', type(b))
# Chuyển đổi sang tuple
c = tuple([1, 2, 3])
print(c, 'là kiểu', type(c))
# Chuyển đổi sang tập hợp
d = set([1, 2, 3])
print(d, 'là kiểu', type(d))
# Chuyển đổi sang từ điển
e = dict([(1, 'one'), (2, 'two')])
print(e, 'là kiểu', type(e))
Kết luận
Việc nắm vững các kiểu dữ liệu trong Python là rất quan trọng để trở thành một lập trình viên Python thành thạo. Bài viết này đã giới thiệu chi tiết về các khái niệm cơ bản như kiểu dữ liệu là gì, các kiểu dữ liệu trong Python, các loại kiểu dữ liệu trong Python, chuyển đổi kiểu dữ liệu trong Python, và các hàm chuyển đổi kiểu dữ liệu. Hy vọng rằng bạn đã có thể hiểu rõ hơn về cách sử dụng các kiểu dữ liệu trong Python và sẵn sàng viết mã Python của riêng mình.