+3

Kiểu dữ liệu và các kiểu dữ liệu trong Python

Kiểu dữ liệu

Trong khoa học máy tính và lập trình máy tính, một kiểu dữ liệu (tiếng Anh: data type) hay đơn giản type là một cách phân loại dữ liệu cho trình biên dịch hoặc thông dịch hiểu các lập trình viên muốn sử dụng dữ liệu. Hầu hết các ngôn ngữ hỗ trợ nhiều kiểu dữ liệu khác nhau, như số thực, số nguyên hay Boolean. Một kiểu dữ liệu cung cấp một bộ các giá trị mà từ đó một biểu thức (ví dụ như biến, hàm...) có thể lấy giá trị của nó. Kiểu định nghĩa các toán tử có thể được thực hiện trên dữ liệu của nó, ý nghĩa của dữ liệu, và cách mà giá trị của kiểu có thể được lưu trữ. (Theo Wikipedia)

Như vậy, kiểu dữ liệu chính là một cách phân loại dữ liệu, mô tả dữ liệu để chương trình hiểu những lập trình viên đang muốn sử dụng dữ liệu, và dữ liệu đó được mô tả bởi kiểu dữ liệu mà các ngôn ngữ lập trình hỗ trợ.

Các kiểu dữ liệu cơ bản

Float

Float là một kiểu dữ liệu, được sử dụng trong Python để biểu diễn các số không ở dạng số nguyên hay nói cách khác là dạng thập phân. Ví dụ mẫu về các số được thể hiện dưới kiểu dữ liệu Float là: 0.5, 8.0-6.969696. Trong toán học, float biểu diễn cho các số thuộc tập số thực R.

Chúng có thể được tạo trực tiếp bằng các nhập một số có dấu thập phân, hoặc bằng cách sử dụng các phép toán như phép chia giữa các số nguyên. Đối với phép chia hết, các số 0 ở phần thập thân được bỏ qua. Tương tự, khi nhập trực tiếp, các chữ số 0 ở cuối cũng được lược bỏ. Ví dụ:

>>> 3/8
0.375
>>> 0.98765432100000
0.987654321
>>> 8/2
4.0

Máy tính không thể lưu trữ số float hoàn toàn chính xác. Tương tự như việc chúng ta không thể viết hết phần thập phân của phân số 1/3 (0.3333333333333...). Hãy nhớ điều này vì chúng có thể dẫn tới những bug hết sức ngớ ngẩn và khó chịu.

Khi nhập "7", số có giá trị bằng 7 được lưu trữ trong máy tính dưới kiểu Integer. Tuy nhiên, nếu nhập "7.0", thì vẫn số có giá trị bằng 7 đó nhưng sẽ được lưu trữ dưới kiểu float.

Như bạn đã thấy ở trên, việc chia các số nguyên có thể tạo ra một kết quả thuộc kiểu float. Tuy nhiên, một số thuộc kiểu Float cũng được sinh ra khi thực hiện các phép toán giữa các số thuộc kiểu float, hoặc một số kiểu float với một số kiểu integer.

>>> 8/2
4.0
>>> 3*1.0
>>> 2 + 2.0

Ngoài ra, số float cũng có thể được tạo ra bằng việc chuyển đổi từ một kiểu dữ liệu số khác (việc chuyển đổi này gọi là ép kiểu). Ví dụ, thực hiện ép kiểu một số thuộc kiểu integer sang kiểu float:

>>> a = 8
>>> print(a)
8
>>> print(float(a))
8.0

Integer

Integer là một kiểu dữ liệu, được sử dụng trong Python để biểu diễn các số nguyên. Ví dụ, các số được biểu diễn ở dạng Integer như: ..., -100, -99,..., 0, 1, 2,..., 999, 1000,.... Trong toán học, kiểu Integer chính là biểu diễn cho các số thuộc tập số nguyên N.

Số thuộc kiểu Integer có thể được tạo bằng các nhập trực tiếp một số nguyên. Hoặc là kết quả của các phép toán giữa các số nguyên. Ví dụ:

>>> 100
100
>>> 969
969
>>> 1+2
3

Có một số ngoại lệ trong Python, ví dụ khi phép chia giữa các số kiểu integer nhưng sẽ lại trả về kiểu float.

Các số thuộc kiểu integer chỉ được tạo ra từ phép toán giữa các số thuộc kiểu integer. Hoặc sử dụng ép kiểu:

>>> a = 3.5
>>> print(a)
3.5
>>> print(int(a))
3

Boolean

Boolean là một kiểu dữ liệu trong Python, được sử dụng để biểu diễn hai các giá trị True hoặc False hay hoặc không. Có thể tạo bằng cách gán trực tiếp từ giá trị True hoặc False trong code hoặc là kết quả của giữa các toán tử logic: so sánh: >, >=, <=, ==, and, or... Hoặc là ép kiểu. Ví dụ:

# Gán trực tiếp bằng cách nhập từ bàn phím:
>>> a = True
>>> print(a)
True
>>> a = False
>>> print(a)
False

# Kết quả giữa các toán tử logic: and, or, so sánh:
>>> b = 3
>>> c = 4
>>> a = (c >= b) and (c == 4)
>>> print(a)
True

# Ép kiểu:
>>> print(bool(1))
>>> True
>>> 
>>> print(bool(0.1))
>>> True
>>> 
>>> print(bool(0))
>>> False

Ép kiểu ngầm

Có thể bạn biết một quy tắc ngặt nghèo rằng, các toán tử chỉ thực hiện được khi trên cùng một kiểu dữ liệu. Vậy tại sao các phép toán được thực hiện trên các kiểu dữ liệu khác nhau đề cập ở trên vẫn trả về kết quả đúng (VD: phép toán giữa float với integer chẳng hạn). Ví dụ lại:

>>> 2 / 2
1.0
>>> 3.0 / 2
1.5
>>> True + False
1
>>> True + 1
2
>>> 1 / True
1.0
>>> False and 1
False
>>> False or 1
1

Lý do đó chính là việc chuyển đổi ngầm, hay mình tạm gọi là ép kiểu ngầm. Đây là một ngoại lệ vì Python âm thầm chuyển đổi kiểu dữ liệu để thực hiện các phép tính ở trên thay vì quy tắc trong Python - thường là bạn phải chuyển đổi giá trị bằng tay nếu muốn code hoạt động trên chúng.

Tổng kết

Bài viết này giúp các bạn bắt đầu học lập trình với Python hiểu được phần nào về kiểu dữ liệu và một số kiểu dữ liệu cơ bản trong Python. Một số chú ý về sử dụng các kiểu dữ liệu hay cách chuyển đổi qua lại giữa các kiểu giữ liệu cơ bản. Và chắc là mình sẽ xin kết thúc bài viết này ở đây, hẹn gặp lại các bạn theo dõi series này trong bài viết lần sau. Cảm ơn các bạn đã theo dõi!

☕️☕️ Nếu thấy nội dung này bổ ích, hãy mời tôi một tách cà phê nha! https://kimyvgy.webee.asia


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí