Kiểu dữ liệu Chuỗi (STRINGS) và Số (NUMBERS)

Mục tiêu của bài viết

Sau khi học xong, bạn sẽ hiểu và biết cách:

  • Phân biệt các kiểu dữ liệu cơ bản trong Python: chuỗi và số.
  • Sử dụng chuỗi (string)số nguyên (integer), số thực (float).
  • Thực hiện phép tính toán đơn giản trong Python.
  • Kết hợp chuỗi và số trong cùng một câu lệnh.
  • Biết cách sử dụng f-string (định dạng chuỗi hiện đại của Python 3.6+).

1. Khái niệm kiểu dữ liệu (Data Types)

Trong mọi ngôn ngữ lập trình, mỗi giá trị đều có một kiểu dữ liệu (data type) riêng.

Python có nhiều kiểu dữ liệu, nhưng ở đây ta bắt đầu với hai loại cơ bản nhất:

Loại dữ liệuTên tiếng AnhVí dụGhi chú
ChuỗiString"Xin chào" hoặc 'Python'Dùng cho văn bản / chữ. Có thể dùng dấu nháy đơn ' ' hoặc kép " ".
Số nguyênInteger5, -12, 0Dùng cho số nguyên (không có phần thập phân).
Số thựcFloat3.14, 0.5, -2.75Dùng cho số có phần thập phân, ví dụ tiền tệ, cân nặng, v.v.

2. Ví dụ: Chuỗi và Số trong Python

Mở file main.py và nhập:

# Ví dụ về kiểu dữ liệu chuỗi (String)
print("Xin chào Python!")
print('Tôi đang học lập trình Python!')

# Ví dụ về kiểu dữ liệu số nguyên (Integer)
print(5)
print(-10)
print(0)

# Ví dụ về kiểu dữ liệu số thực (Float)
print(3.14)
print(0.75)
print(-1.25)

Kết quả:

Xin chào Python!
Tôi đang học lập trình Python!
5
-10
0
3.14
0.75
-1.25

Như vậy, bạn có thể in ra chuỗi hoặc số chỉ bằng print() — Python sẽ hiểu kiểu dữ liệu tự động.

3. Thực hiện phép tính toán đơn giản

Python có thể thực hiện các phép toán như trong toán học cơ bản:

# Cộng
print(10 + 5)

# Trừ
print(20 - 8)

# Nhân
print(4 * 3)

# Chia
print(15 / 3)

Kết quả:

15
12
12
5.0

Ghi chú: Kết quả của phép chia / trong Python luôn là kiểu float, kể cả khi chia hết.

4. Ví dụ thực tế: Tính số phút trong 20 ngày

Bây giờ, ta viết một đoạn mã có ý nghĩa thực tế hơn — tính số phút trong 20 ngày.

Gợi ý:

1 ngày = 24 giờ

1 giờ = 60 phút

→ 20 ngày = 20 × 24 × 60 phút

# Tính số phút trong 20 ngày
print(20 * 24 * 60)

Kết quả:

28800

Chương trình của ta bây giờ đã thực hiện một phép tính thực tế, không chỉ in giá trị tĩnh.

5. Ghép Chuỗi và Số (String Concatenation)

Giờ ta muốn in ra kết quả kèm mô tả, ví dụ:

20 days are 28800 minutes

Cách 1: Dùng toán tử cộng + để nối chuỗi

# Ghép chuỗi bằng dấu +
print("20 days are " + str(20 * 24 * 60) + " minutes")

Giải thích:

  • + dùng để nối (concatenate) các chuỗi.
  • str() chuyển số thành chuỗi.
  • Nếu bạn không chuyển, Python sẽ báo lỗi vì không thể nối chuỗi và số trực tiếp.

Kết quả:

20 days are 28800 minutes

Lưu ý:

Nếu bạn quên thêm khoảng trắng " ", câu sẽ bị dính liền như:

20daysare28800minutes

Cách 2: Dùng f-string (cách hiện đại hơn)

Đây là cách tốt nhất và dễ đọc nhất trong Python 3.6+.

# Ghép chuỗi bằng f-string
print(f"20 days are {20 * 24 * 60} minutes")

Giải thích:

  • Ký tự f đặt trước chuỗi (f-string).
  • Bên trong chuỗi, viết giá trị hoặc phép tính trong ngoặc nhọn {}.
  • Python sẽ tự động chèn kết quả vào vị trí đó.

Kết quả:

20 days are 28800 minutes

Ưu điểm:

  • Dễ đọc, ngắn gọn, không cần + hoặc str().
  • Có thể chèn trực tiếp biểu thức toán học vào chuỗi.

6. So sánh các cách nối chuỗi

CáchCú phápĐộ dễ đọcHỗ trợ từ phiên bản
Toán tử +"text" + str(value)Trung bìnhPython 2 trở lên
f-stringf"text {value}"✅ Rất dễ đọcPython 3.6 trở lên

7. Kiểm tra sự khác biệt giữa Python 2 và Python 3

Nếu bạn chạy cùng dòng mã f-string trên Python 2, sẽ có lỗi:

SyntaxError: invalid syntax

➡️ Vì cú pháp f"..." chỉ được hỗ trợ từ Python 3.6+.

Bạn có thể kiểm tra phiên bản Python bằng lệnh:

python3 --version

8. Mở rộng ví dụ: Tính toán có biến số

Ta có thể làm ví dụ linh hoạt hơn bằng cách sử dụng biến (variables):

# Biến lưu trữ giá trị
days = 20
hours_per_day = 24
minutes_per_hour = 60

# Tính tổng số phút
total_minutes = days * hours_per_day * minutes_per_hour

# In kết quả
print(f"{days} days are {total_minutes} minutes")

Kết quả:

20 days are 28800 minutes

9. Ghi nhớ quan trọng

Khái niệmGiải thích
String (chuỗi)Văn bản nằm trong " " hoặc ' '.
Integer (số nguyên)Số không có phần thập phân.
Float (số thực)Số có phần thập phân (ví dụ 3.14).
str()Chuyển giá trị khác (số, bool, v.v.) thành chuỗi.
f-stringCách chèn giá trị vào chuỗi hiện đại trong Python.

Bài tập thực hành

Bài tập 1:

Tạo chương trình tính số giờ trong 15 ngày và in kết quả:

days = 15
hours_per_day = 24
total_hours = days * hours_per_day

print(f"{days} days are {total_hours} hours")

Bài tập 2:

Tạo chương trình tính số giây trong 3 ngày, và hiển thị kèm mô tả:

days = 3
hours = 24
minutes = 60
seconds = 60

total_seconds = days * hours * minutes * seconds
print(f"{days} days are {total_seconds} seconds")

Bài tập 3:

Tạo chương trình in ra giá sản phẩmtổng tiền sau thuế (VAT 10%):

price = 250000  # giá sản phẩm
tax_rate = 0.1
total = price + (price * tax_rate)

print(f"Giá sản phẩm: {price} VND")
print(f"Giá sau thuế 10%: {total} VND")