Thứ Năm, 9 tháng 5, 2024

4. Các kiểu dữ liệu trong lập trình Python

Trước hết ta nhớ lại là CPU của máy tính chỉ nhận biết hay "hiểu" hai trạng thái Có-Không hay 1-0 mà thôi. Từ đây sinh ra khái niệm Bit, Byte, hai thuật ngữ chuyên ngành trong công nghệ.


Bit là gì?
Bit được viết tắt từ Binary digit ký hiệu là "b". Bit được biết đến là đơn vị nhỏ nhất được dùng để biểu thị thông tin của máy tính. Đây cũng là đơn vị nhỏ nhất trong việc lưu trữ thông tin trong hệ thống và lưu trữ dung lượng của các bộ nhớ như: ROM, RAM, ổ cứng, USB, thẻ nhớ…
Thông thường các bit sẽ được biểu diễn dưới dạng số nhị phân là 0 hoặc 1. Mỗi một bit ứng với một số (1 hoặc 0) và một bit chỉ có thể nhận diện được cũng như hiểu được 1 hoặc trong 2 trạng thái thông tin bật hoặc tắt, đúng hoặc sai hay có hoặc không.
Chuỗi bit là một chuỗi liên tiếp các bit (1 hoặc 0) được sử dụng để biểu diễn thông tin của một đối tượng trong máy tính. Trong ngôn ngữ lập trình, các loại dữ liệu như số, ký tự, hình ảnh, âm thanh và các thành phần khác đều được mô tả dưới dạng các dãy bit. Chẳng hạn, một ký tự chữ cái như 'a' có thể được biểu diễn bằng một chuỗi 8 bit, tương đương với 1 byte (ta sẽ nói bên dưới), với giá trị là 01100001.


Từ khái niệm Bit sẽ sinh ra khái niệm Byte.

Byte là gì?
Byte là một loại đơn vị được dùng để lưu trữ các dữ liệu trong bộ nhớ của máy tính và nó được ký hiệu là chữ B in hoa "B". Loại đơn vị này sẽ dùng để mô tả một chuỗi bit cố định, 1 Byte có 8 bit và sẽ biểu thị được 2^8=256 giá trị khác nhau của thông tin. Chính vì vậy với 1 Byte nó sẽ đủ để lưu trữ số có dấu trừ -128 đến 127 hoặc số nguyên không dấu từ 0 đến 255. Hoặc như ví dụ trên ta sẽ thấy các chữ cái a,b,c,d....mỗi chữ sẽ được biểu thị bằng 1 byte. Để thể hiện một từ chúng ta phải cần khoảng 10 byte. Và, để thể hiện một câu văn ngắn chúng ta phải cần xấp xỉ 100 byte.


Kiểu dữ liệu (Data type) là gì?
Ta có thể hiểu nôm na kiểu dữ liệu (data type) là cách để phân loại và mô tả cách dữ liệu được lưu trữ và xử lý trong ngôn ngữ lập trình. Hoặc nói cô đọng hơn, kiểu dữ liệu chính là phần xác định các giá trị mà một biến có thể nhận hay giá trị mà một hàm có thể trả về. Ví dụ biến a có kiểu dữ liệu số nguyên, biến b có kiểu dữ liệu số thực...hàm c sẽ trả về kiểu dữ liệu số nguyên, hàm d sẽ trả về kiểu dữ liệu chuỗi ký tự. Mỗi kiểu dữ liệu sẽ chiếm số byte khác nhau.

Python có các kiểu dữ liệu:

  • Numeric
  • Sequence Type
  • Boolean
  • Set
  • Dictionary
  • Binary Types

 

Hình bên dưới cho ta cái nhìn "toàn cảnh" về các kiểu dữ liệu trong Python

 


Có nhiều cách phân chia khác nhau, chúng ta không quá chú ý vào cách phân chia thế nào là đúng, miễn là chúng ta hiểu và áp dụng đúng khi lập trình.

Kiểu Numeric:

Kiểu dữ liệu số trong Python biểu thị dữ liệu có giá trị số. Giá trị số có thể là số nguyên (int), số thực (float) hoặc số phức (complex).
Trong Python, không có giới hạn về độ dài của một giá trị số nguyên.

Lưu ý - hàm type() được sử dụng để xác định loại dữ liệu Python.

Chúng ta sẽ thử với 3 loại dữ liệu kiểu số, đây là code

a = 6
print("Type of a: ", type(a))

b = 6.0
print("\nType of b: ", type(b))

c = 7 + 5j
print("\nType of c: ", type(c))  


Sử dụng IDE Online để chạy chương trình

 


 



Kiểu tuần tự (Sequence Type)

Kiểu dữ liệu tuần tự trong Python là tập hợp có thứ tự các kiểu dữ liệu Python tương tự hoặc khác nhau. Có một số kiểu dữ liệu tuần tự của Python:

    Kiểu String
    Kiểu List
    Kiểu Tuple

Python không có kiểu dữ liệu ký tự (char) như trong C. Chuỗi (String) trong Python có thể được tạo bằng dấu ngoặc đơn (' '), dấu ngoặc kép (" ") hoặc dấu ngoặc ba (''' ''').

Chúng ta sẽ thử với dấu ngoặc ba (''' ''').Đây là code, lưu ý dấu ngoặc ba là 3 dấu ngoặc đơn liền nhau. 


a = 6
print("Type of a: ", type(a))

b = 6.0
print("\nType of b: ", type(b))

c = 7 + 5j
print("\nType of c: ", type(c))    
String1 = '''Day la text trong dau ngoac ba "Mot Text dau ngoac kep nam ben trong dau ngoac ba"'''
print(String1)


Chạy chương trình



Truy cập các phần tử của String

Trong lập trình Python, các ký tự riêng lẻ của Chuỗi (String) có thể được truy cập bằng cách sử dụng phương thức Lập chỉ mục. Lập chỉ mục phủ định cho phép tham chiếu địa chỉ phủ định truy cập các ký tự từ phía sau Chuỗi, ví dụ: -1 đề cập đến ký tự cuối cùng, -2 đề cập đến ký tự cuối cùng thứ hai, v.v.

Chúng ta sẽ kiểm chứng, đây là code


a = 6
print("Type of a: ", type(a))

b = 6.0
print("\nType of b: ", type(b))

c = 7 + 5j
print("\nType of c: ", type(c))    
String1 = '''Day la text trong dau ngoac ba "Mot Text dau ngoac kep nam ben trong dau ngoac ba"'''
print(String1)
print("\nKy tu dau tien cua Chuoi la: ")
print(String1[0])
print("\nKy tu cuoi cung cua Chuoi la: ")
print(String1[-1])
print("\nKy tu gan ky tu cuoi cung cua Chuoi la: ")
print(String1[-2])

 

Chạy chương trình


 


Kiểu Danh sách (List)

Danh sách giống như mảng, được khai báo bằng các ngôn ngữ khác và là tập hợp dữ liệu có thứ tự. Nó rất linh hoạt vì các mục trong danh sách không cần phải cùng loại.

Tạo danh sách trong Python

Danh sách trong Python được tạo bằng cách đặt chuỗi bên trong dấu ngoặc vuông [].

Chúng ta sẽ tiếp tục theo phong cách...tào lao để kiểm chứng về kiểu danh sách trong Python.

Đầu tiên chúng ta tạo một danh sách trống, không có phần tử nào
Sau đó chúng ta thêm một chuỗi 'Dat Viet Lap Trinh' vào danh sách List
Ta tiếp tục tạo một danh sách bao gồm nhiều chuỗi khác nhau và truy cập các chuỗi dựa vào Index
Cuối cùng ta tạo một danh sách đa chiều.

Đây là code

a = 6
print("Type of a: ", type(a))

b = 6.0
print("\nType of b: ", type(b))

c = 7 + 5j
print("\nType of c: ", type(c))    
String1 = '''Day la text trong dau ngoac ba "Mot Text dau ngoac kep nam ben trong dau ngoac ba"'''
print(String1)
print("\nKy tu dau tien cua Chuoi la: ")
print(String1[0])
print("\nKy tu cuoi cung cua Chuoi la: ")
print(String1[-1])
print("\nKy tu gan ky tu cuoi cung cua Chuoi la: ")
print(String1[-2])
List = []
print("Day la danh sach trong: ")
print(List)
List = ['Dat Viet Lap Trinh']
print("\nDanh sach voi mot chuoi: ")
print(List)
List = ["Dat", "Viet", "Lap", "Trinh"]
print("\nDanh sach gom nhieu chuoi: ")
print(List[0])
print(List[2])
List = [['Dat', 'Viet'], ['Lap', 'Trinh']]
print("\nDanh sach có nhieu chieu: ")
print(List)

 

Chạy chương trình trên IDE Online


 

Truy cập các phần tử của Danh sách

 
Tương tự như với String, trong code bên trên, chúng ta cũng đã truy cập các phần tử của danh sách. Để truy cập các mục danh sách, ta dùng số chỉ mục (Index). Sử dụng toán tử chỉ mục [] để truy cập một mục trong danh sách. Trong Python, chỉ mục chuỗi âm biểu thị các vị trí từ cuối mảng. Lập chỉ mục phủ định có nghĩa là bắt đầu từ cuối, -1 đề cập đến mục cuối cùng, -2 đề cập đến mục cuối cùng thứ hai, v.v.


Kiểu Bộ dữ liệu Tuple

Tương tự như Danh sách. Sự khác biệt duy nhất giữa bộ dữ liệu và danh sách là bộ dữ liệu không thể thay đổi, tức là bộ dữ liệu không thể sửa đổi sau khi được tạo. Tuple sử dụng các dấu ngoặc đơn, Không giống như List sử dụng các dấu ngoặc vuông. Các đối tượng trong tuple được phân biệt bởi dấu phảy và được bao quanh bởi dấu ngoặc đơn (). Giống như chỉ mục của chuỗi, chỉ mục của tuple bắt đầu từ 0.

Ví dụ:

traiCay = ("Tao", "Chuoi", "Xoai", "Nho")
print(traiCay)

Chúng ta thêm vào cuối chương trình và chạy thử




 

 

Phần tiếp theo


Phần trước


Không có nhận xét nào:

Đăng nhận xét