tinbc tinbc

Bài 2: Biến và kiểu dữ liệu trong Python

Thợ Code6 phút đọc
Bài 2: Biến và kiểu dữ liệu trong Python

Bài 1 bạn đã chạy được dòng code đầu tiên. Giờ ta học thứ có mặt trong mọi chương trình: biến (nơi lưu dữ liệu) và kiểu dữ liệu (loại dữ liệu đó là gì). Cuối bài, bạn sẽ tự viết một chương trình tính chỉ số BMI chạy được thật.

⏱️ Cách học bài này (~30 phút): đọc khái niệm + code mẫu (10’), tự gõ và chạy các bài thực hành (12’), xem lỗi thường gặp (4’), tự kiểm + lưu code mang về (4’).

Mục tiêu bài học

Sau bài này bạn sẽ:

  • Tạo và gán giá trị cho biến.
  • Nhận ra 4 kiểu dữ liệu cơ bản: int, float, str, bool.
  • Dùng input() để nhận dữ liệu và ép kiểu để tính toán.
  • Tự viết một chương trình tính BMI hoàn chỉnh.

🎯 Đóng góp vào đích series: bài này thêm 1 chương trình (máy tính BMI) vào kho chương trình của bạn — đích cuối series là kho ≥13 chương trình + 1 dự án.

1. Biến là gì?

Biến là một cái tên trỏ tới một giá trị được lưu trong bộ nhớ. Tạo biến bằng dấu = (gán):

ten = "Lan"      # gán chuỗi "Lan" cho biến ten
tuoi = 25        # gán số 25 cho biến tuoi

Dấu = ở đây không phải “bằng” như toán học, mà là “gán giá trị bên phải vào tên bên trái”. Sau đó dùng lại tên biến bất cứ đâu:

print(ten)       # in ra: Lan
print(tuoi + 1)  # in ra: 26

Quy tắc đặt tên: dùng chữ thường, nối bằng _ (vd can_nang), không bắt đầu bằng số, không dấu cách.

2. Bốn kiểu dữ liệu cơ bản

Kiểu Là gì Ví dụ
int số nguyên 25, -3, 1000
float số thập phân 1.65, 3.14, -0.5
str chuỗi văn bản (trong dấu nháy) "Lan", 'xin chào'
bool đúng/sai True, False

Kiểm tra kiểu bằng type():

print(type(25))      # <class 'int'>
print(type(1.65))    # <class 'float'>
print(type("Lan"))   # <class 'str'>

3. input() và ép kiểu — điểm cốt tử

input() nhận dữ liệu người dùng gõ, nhưng luôn trả về chuỗi (str), kể cả khi họ gõ số. Muốn tính toán phải ép kiểu:

tuoi = input("Tuổi của bạn: ")   # tuoi là chuỗi, vd "25"
tuoi = int(tuoi)                 # ép sang số nguyên để tính được
  • int(...) → ép sang số nguyên.
  • float(...) → ép sang số thập phân.
  • str(...) → ép sang chuỗi (để nối với văn bản).

4. Code mẫu có chú thích — chương trình tính BMI

# Chương trình tính chỉ số BMI
ten = input("Tên bạn: ")                       # str: tên không cần ép kiểu
can_nang = float(input("Cân nặng (kg): "))     # ép sang float vì có thể có phần lẻ
chieu_cao = float(input("Chiều cao (m): "))    # vd 1.65

bmi = can_nang / (chieu_cao ** 2)              # ** là luỹ thừa: chieu_cao bình phương
print(ten, "có BMI là:", round(bmi, 1))        # round(x, 1): làm tròn 1 chữ số thập phân

Chạy thử (nhập 60 và 1.65), kết quả in ra:

Tên bạn: Lan
Cân nặng (kg): 60
Chiều cao (m): 1.65
Lan có BMI là: 22.0

Lưu ý cách print(...) nối nhiều phần bằng dấu phẩy — Python tự thêm khoảng trắng giữa chúng.

5. Bài thực hành (tự gõ và chạy)

Bài 1. Tạo 3 biến ten (str), tuoi (int), cao (float) và in ra cả ba.

Bài 2. Viết chương trình hỏi năm sinh rồi in ra tuổi (gợi ý: 2026 - int(input(...))).

Bài 3. Viết chương trình hỏi giá sản phẩm và số lượng, in ra tổng tiền.

Bài 4. Sửa lại chương trình BMI để in thêm dòng phân loại đơn giản (vd in “BMI của bạn:” trước số) — luyện nối chuỗi với số.

Kết quả mong đợi: mỗi chương trình chạy không báo lỗi và in ra đúng con số. Riêng Bài 2, nhập 2000 phải ra 26.

6. Lỗi thường gặp & cách sửa

Lỗi Nguyên nhân Cách sửa
TypeError: can only concatenate str nối chuỗi với số bằng + ép số sang chuỗi: "Tuổi: " + str(tuoi), hoặc dùng dấu phẩy trong print
ValueError: invalid literal for int() int("hai mươi") — ép chữ sang số chỉ ép khi người dùng gõ số; nhập đúng định dạng
Kết quả tính ra sai/0 quên ép kiểu, đang tính trên chuỗi bọc int(...) hoặc float(...) quanh input()
NameError: name 'ten' is not defined dùng biến chưa tạo / gõ sai tên kiểm tra chính tả tên biến, tạo biến trước khi dùng

💾 Mang về — code hoàn chỉnh

Lưu file bmi.py với chương trình ở mục 4 vào kho chương trình của bạn. Đây là chương trình thứ 1 trong series — bạn sẽ tích luỹ ≥13 chương trình như vậy.

Thuật ngữ chốt

Thuật ngữ Giải thích ngắn
Biến (variable) Tên trỏ tới một giá trị lưu trong bộ nhớ.
Gán (=) Đặt giá trị bên phải vào biến bên trái.
Kiểu dữ liệu Loại của giá trị: int, float, str, bool.
Ép kiểu (cast) Chuyển giá trị sang kiểu khác: int(), float(), str().
input() Nhận dữ liệu người dùng gõ; luôn trả về chuỗi.

Tự kiểm tra

1. type(3.0) trả về kiểu gì?
2. Vì sao int(input()) + 5 chạy được mà input() + 5 báo lỗi?
3. Viết 1 dòng tạo biến gia bằng 19.5.
4. (Mini-task) Tự gõ và chạy chương trình BMI ở mục 4, thử với 70 kg và 1.70 m.

Gợi ý đáp án

  • 1: float.
  • 2: input() trả về chuỗi; chuỗi + 5 là cộng chuỗi với số → lỗi. int(...) đổi chuỗi thành số nên cộng được.
  • 3: gia = 19.5
  • 4: (tự chạy) — kết quả BMI ≈ 24.2.

Ghi nhớ nhanh

  • Biến = tên trỏ tới giá trị; gán bằng =.
  • 4 kiểu: int, float, str, bool.
  • input() luôn ra chuỗi → ép kiểu trước khi tính.

Bài tập về nhà: viết chương trình hỏi 2 số rồi in ra tổng, hiệu, tích, thương của chúng (nhớ ép kiểu). Ôn lại Bài 1: Cài đặt & chạy code đầu tiên. Bài 3: chuỗi và thao tác văn bản.

Chia sẻ:
0.0 0 lượt đánh giá

Câu hỏi thường gặp

Vì sao input() luôn cho ra chuỗi (string)?

Python coi mọi thứ người dùng gõ vào là văn bản, kể cả khi gõ số. Muốn tính toán, bạn phải ép kiểu bằng int() hoặc float(). Quên bước này là nguyên nhân lỗi phổ biến nhất của người mới.

Khi nào dùng int, khi nào dùng float?

int cho số nguyên (tuổi, số lượng), float cho số có phần thập phân (cân nặng, giá tiền, điểm trung bình). Nếu nghi ngờ kết quả có phần lẻ, dùng float cho an toàn.

Thợ Code

Thợ Code

Thợ code chính hiệu, thích dắt người mới qua mấy đoạn 'khó nhằn' bằng giọng nhẹ tênh. Châm ngôn: cứ làm dự án thật, sai thì sửa, vui là chính.

Bài liên quan

Cách xây portfolio lập trình để xin việc (cho người mới)
Lập trình

Cách xây portfolio lập trình để xin việc (cho người mới)

Nhà tuyển dụng muốn thấy bạn LÀM được gì, không chỉ liệt kê kỹ năng. Bài này chỉ cách xây portfolio lập trình thuyết phục cho người mới — chọn dự án, đưa lên GitHub, viết README ấn tượng và tạo trang portfolio miễn phí.

Cách dùng dòng lệnh (terminal) cơ bản cho người mới
Lập trình

Cách dùng dòng lệnh (terminal) cơ bản cho người mới

Cửa sổ đen với dòng lệnh nhìn đáng sợ, nhưng terminal là công cụ nền tảng của lập trình viên — và không hề khó. Bài này dạy các lệnh thiết yếu (di chuyển thư mục, tạo/xoá file…) trên cả Windows và macOS, giải thích từng lệnh, an toàn cho người mới.

1 lượt xem
API là gì? Giải thích đơn giản cho người mới
Lập trình

API là gì? Giải thích đơn giản cho người mới

Bạn nghe ‘API’ khắp nơi nhưng chưa rõ nó là gì? Bài này giải thích API bằng ví von đời thường dễ hiểu, cho ví dụ thực tế bạn gặp hằng ngày, và một ví dụ gọi API công khai — nền tảng quan trọng cho ai học lập trình.

1 lượt xem