Kiểu dữ liệu cơ bản trong Python

Python là một ngôn ngữ có kiểu dữ liệu động (nghĩa là bạn không cần khai báo kiểu dữ liệu của biến) và như mình đã giới thiệu trước đó, việc này làm cho ngôn ngữ trở nên đơn giản, mã nguồn dễ đọc hơn. Nhưng đối với các bạn chưa quen, sẽ gặp đôi chút khó khăn để kiểm soát kiểu dữ liệu và kết quả của các phép tính. Trong bài viết này, chúng ta sẽ làm quen với một số khái niệm về kiểu dữ liệu số, chuỗi và boolean được xây dựng sẵn trong ngôn ngữ Python.

Lưu ý: Trong loạt bài viết này, mình sẽ giới thiệu về Python 3. Nếu bạn muốn tìm hiểu Python 2, sẽ có một số khái niệm không chính xác, bạn cần tham khảo thêm ở các nguồn khác cho phiên bản Python 2.

Dữ liệu kiểu số

Số nguyên

Tương tự các ngôn ngữ lập trình khác, Python cũng xây dựng sẵn kiểu dữ liệu số nguyên (integer). Điểm nhỉnh hơn của Python là một số nguyên không bị giới hạn. Nghĩa là bạn sẽ không phải nghe nhắc đến Int32, Int64…vv ở đây.

Tuy nhiên, bất kỳ biến nào cũng sẽ phải lưu trên bộ nhớ. Do đó, giá trị số nguyên cũng bị giới hạn bởi các cấu hình của hệ điều hành cũng như sức mạnh phần cứng máy của bạn.

Số nguyên trong Python sẽ được thể hiện ở 4 định dạng

  • Thập phân (Decimal)
  • Nhị phân (binary) được bắt đầu bởi số 0 và kí tự b (hoặc B)
  • Bát phân (Octal) được bắt đầu bởi số 0 và kí tự o (hoặc O)
  • Thập lục phân (Hexadecimal) được bắt đầu bởi số 0 và kí tự x (hoặc X)

Số thực

Kiểu dữ liệu float trong Python được thiết kế để lưu trữ các số thực. Trên tinh thần đơn giản của ngôn ngữ Python, kiểu số thực cũng được biểu diễn bằng các cách cũng rất đơn giản.

Python trên phần lớn các hệ thống đều hiện thực kiểu float theo chuẩn “double-precision” nghĩa là sử dụng 64bit để biểu diễn một số thực. Theo tài liệu IEEE_754 thì số thực trong Python có giá trị tối đa khoảng 1.8 * 10^308, nếu vượt ngưỡng này, Python sẽ hiển thị giá trị vô cực (inf). Giá trị gần với số 0 là 5.0 * 10^-324, vượt ngưỡng này Python sẽ trả về giá trị 0.0

Nếu muốn đào sâu hơn về kiểu số thực, bạn có thểm đọc thêm về Floating Point Arithmetic

Số phức

Ngoài số nguyên và số thực, Python cũng hỗ trợ một kiểu dữ liệu vô cùng quan trọng trong lĩnh vực khoa học, đó là số phức (complex number). Bạn có thể dễ dàng khai báo một số phức bằng cú pháp  <phần thực>+<đơn vị ảo>j

Dữ liệu kiểu chuỗi

Chuỗi (string) là một chuỗi các ký tự. Python thiết kế kiểu dữ liệu str để lữu trữ dữ liệu chuỗi. Ở Python 3, Unicode được hỗ trợ mặc định với kiểu dữ liệu chuỗi.

Một chuỗi sẽ được khai báo bằng 3 cách, trong nháy đơn (‘nội dung’), trong nháy kép (“nội dung”) hoặc trong 3 dấu nháy kép (“””nội dung”””). Việc khai báo không ảnh hưởng gì đến dữ liệu bên trong, khác biệt duy nhất đến từ 3 dấu nháy, nội dung bên trong 3 dấu nháy sẽ được giữ nguyên định dạng (xuống dòng, khoảng trắng và tab…)

Boolean

Python 3 cung cấp sẵn kiểu dữ liệu Boolean. Một đối tượng (object) boolean sẽ nhận 1 trong 2 giá trị True hoặc False

Một đối tượng bool có giá trị True sẽ được xem là “truthy”. Ngược lại khi nó nhận giá trị False sẽ được xem là “falsy”. Nghĩa là giá trị của một đối tượng bool không bao giờ bị ảnh hưởng bởi ngữ cảnh.

Ngược lại, các đối tượng khác (không phải boolean) sẽ được đánh giá tính đúng/sai (True/False) tùy thuộc vào ngữ cảnh của nó. Xét ví dụ bên dưới

Chúng ta có lần lượt biến thuộc kiểu số nguyên (integer) với giá trị được gán lần lượt là số dương, số âm và số không. Tùy thuộc vào giá trị của số nguyên, trình thông dịch sẽ hiểu chúng theo những cách khác khau, số dương và số âm sẽ được xem là True và số âm sẽ được xem là False.

Do đó, khi sử dụng một đối tượng non-boolean trong các cấu trúc điều khiển, chúng ta cần thật sự hiểu rõ về hành vi của trình thông dịch sẽ xử lý đối tượng đó như thế nào.

 

Python – Ngôn ngữ tuyệt vời

Hoàn thiện thiết lập môi trường phát triển Python

Khởi đầu với Python

Hướng dẫn quản lý file với giao thức FTP bằng phần mềm FileZilla Client

Hướng dẫn cách xem thời gian hiển thị trong lệnh dmesg

Từng bước xây dựng server VPN L2TP/IPSec trên CentOS 7

Hướng dẫn fix lỗi 404 Not Found khi truy cập bài viết trong WordPress

Hướng dẫn bảo vệ wp-admin|wp-login.php tránh bị tấn công dò mật khẩu (brute-force) cho website WordPress