Biến và kiểu dữ liệu: nền tảng của mọi ngôn ngữ lập trình

  • author-image

    Nguyễn Đình Cường

  • blog-tag
  • blog-comment 0 comment
  • created-date 09 Nov, 2026
blog-thumbnail

Mọi chương trình đều phải nhớ thông tin: tên người dùng, điểm số, giá sản phẩm. Nơi lưu trữ những thông tin đó gọi là biến, và loại thông tin quyết định kiểu dữ liệu của nó. Nắm chắc hai khái niệm này, bạn đã có nền móng cho mọi ngôn ngữ.

Biến là gì?

Biến (variable) là một cái hộp có dán nhãn dùng để chứa giá trị. Bạn đặt tên cho hộp, bỏ giá trị vào, và sau đó gọi tên để lấy ra hoặc thay đổi. Trong Python:

ten = "Lan"
tuoi = 21
tuoi = tuoi + 1   # tuoi giờ là 22
print(ten, tuoi)

Dòng đầu tạo biến ten chứa chuỗi "Lan". Dòng thứ ba cho thấy giá trị của biến có thể thay đổi, đó là lý do nó được gọi là "biến". Nếu giá trị không bao giờ đổi, nhiều ngôn ngữ cho phép khai báo hằng số (constant), ví dụ const PI = 3.14 trong JavaScript.

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

Máy tính cần biết một giá trị là số hay chữ để xử lý đúng. Hầu hết ngôn ngữ đều có những kiểu sau:

KiểuÝ nghĩaVí dụ
Số nguyên (int)Số không có phần thập phân5, -12, 0
Số thực (float)Số có phần thập phân3.14, -0.5
Chuỗi (string)Văn bản"Xin chào"
Logic (boolean)Đúng hoặc saiTrue, False

Ngoài ra còn các kiểu phức hợp như danh sách (list/array), từ điển (dictionary/object), mà bạn sẽ gặp ở các bài sau.

Kiểu dữ liệu quyết định hành vi

Cùng một phép toán nhưng kiểu khác nhau cho kết quả khác nhau:

print(2 + 3)       # 5   (cộng số)
print("2" + "3")   # 23  (nối chuỗi)
print("ab" * 3)    # ababab

Một lỗi kinh điển của người mới là đọc dữ liệu người dùng nhập vào (luôn là chuỗi) rồi cộng như số:

a = input("Nhập a: ")
b = input("Nhập b: ")
print(a + b)                 # nhập 2 và 3 sẽ ra "23"
print(int(a) + int(b))       # đúng: 5

Việc đổi từ kiểu này sang kiểu khác gọi là ép kiểu (type casting), ví dụ int(), float(), str().

Kiểu tĩnh và kiểu động

Ngôn ngữ chia làm hai trường phái:

  • Kiểu tĩnh (C, C++, Java, C#): bạn phải khai báo kiểu, ví dụ int tuoi = 21;. Trình biên dịch phát hiện nhiều lỗi sớm.
  • Kiểu động (Python, JavaScript): biến tự nhận kiểu theo giá trị, viết ngắn gọn hơn nhưng lỗi kiểu có thể chỉ lộ ra khi chạy.

Không bên nào hơn hẳn. Kiểu tĩnh giúp dự án lớn dễ kiểm soát, kiểu động giúp viết thử nghiệm nhanh. Nhiều dự án JavaScript hiện nay dùng TypeScript để có thêm kiểm tra kiểu.

Quy tắc đặt tên biến

Tên biến tốt giúp code tự giải thích:

  • Dùng tên có nghĩa: gia_san_pham tốt hơn x.
  • Không bắt đầu bằng chữ số, không chứa khoảng trắng, không trùng từ khóa của ngôn ngữ.
  • Thống nhất kiểu viết: snake_case (Python) hoặc camelCase (JavaScript, Java).
  • Phân biệt chữ hoa và chữ thường: tuoi và Tuoi là hai biến khác nhau.

Phạm vi của biến

Biến tạo bên trong một hàm thường chỉ dùng được trong hàm đó (biến cục bộ). Biến tạo bên ngoài có thể dùng rộng hơn (biến toàn cục). Lạm dụng biến toàn cục dễ gây lỗi khó tìm vì bất kỳ đoạn code nào cũng có thể sửa nó, nên hãy ưu tiên biến cục bộ và truyền giá trị qua tham số.

Những lỗi thường gặp

  1. Dùng biến trước khi gán giá trị.
  2. Nhầm giữa phép gán = và phép so sánh ==.
  3. Quên ép kiểu khi nhận dữ liệu nhập vào.
  4. Chia hai số nguyên và ngạc nhiên vì kết quả: trong C, 5 / 2 cho 2, còn Python cho 2.5.

Bài tập nhỏ: chương trình tính tiền

Hãy áp dụng biến và kiểu dữ liệu vào một ví dụ thực tế: tính tổng tiền của một đơn hàng có thuế.

ten_hang = "Sách Python"
don_gia = 120000      # số nguyên, đơn vị đồng
so_luong = 3
thue_phan_tram = 8

thanh_tien = don_gia * so_luong
thue = thanh_tien * thue_phan_tram / 100
tong = thanh_tien + thue

print(f"Hàng: {ten_hang}")
print(f"Thành tiền: {thanh_tien}")
print(f"Thuế: {thue}")
print(f"Tổng cộng: {tong}")

Chương trình dùng đủ bốn kiểu: chuỗi, số nguyên, số thực (kết quả phép chia) và có thể thêm một biến Boolean như co_giam_gia. Hãy thử thay so_luong thành chuỗi "3" để xem lỗi kiểu dữ liệu xuất hiện thế nào, rồi sửa bằng int(). Việc cố ý gây lỗi và đọc thông báo là cách học nhanh nhất.

Kết luận

Biến giúp chương trình ghi nhớ, kiểu dữ liệu giúp máy tính hiểu giá trị đó là gì. Hãy tự tay thử các ví dụ trên, cố tình làm sai để xem thông báo lỗi, bạn sẽ nhớ lâu hơn bất kỳ định nghĩa nào.

Học xong lý thuyết, hãy thực hành thật nhiều; các bài giảng có bài tập trong khóa học codebem.com sẽ giúp bạn việc đó.

author_photo
Nguyễn Đình Cường

0 comment