
-
Bạn viết chương trình nhưng kết quả của
1 + 1lại ra11thay vì2? -
Hiểu rõ bản chất của dữ liệu chuỗi (String) và số (Integer/Float) trong Python.
-
Chỉ sau 5 phút, bạn sẽ không bao giờ mắc lỗi “cộng chuỗi” sơ đẳng này nữa.
Tóm tắt nội dung
-
Tại sao hàm
input()luôn trả về chuỗi? -
Cách sử dụng
int()vàfloat()để ép kiểu. -
Code mẫu cơ bản (nhập từng dòng).
-
Code mẫu nâng cao (nhập trên 1 dòng – chuẩn đi thi).
Bạn xem thêm:
- Giải Thuật Sudoku: Chiến Lược Backtracking Trong Python
- In ma trận xoắn ốc Python: Giải thuật & Code tối ưu
- Xoay Ma Trận 90 Độ Python: Thuật Toán In-place Tối Ưu
1. Đề bài tổng hai số

Đề bài:
Viết chương trình Python yêu cầu người dùng nhập vào hai số a và b từ bàn phím. Sau đó tính tổng của chúng và in ra màn hình.
Input:
-
Dòng 1: Số thứ nhất.
-
Dòng 2: Số thứ hai.
Output:
-
Tổng của hai số.
Ví dụ:
Input:
10
20
Output:
Tong la: 30
2. Phân tích tư duy
Vấn đề lớn nhất của người mới học Python nằm ở hàm input().
Quy tắc bất di bất dịch: Hàm input() luôn luôn trả về kiểu dữ liệu là Chuỗi ký tự (String), ngay cả khi bạn gõ số.
Ví dụ: Bạn nhập số 10.
-
Python hiểu là:
"10"(chuỗi văn bản giống như chữ “Hello”). -
Nếu bạn thực hiện phép cộng:
"10" + "20". -
Python sẽ nối đuôi 2 chuỗi lại thành:
"1020".
Giải pháp:
Bạn cần “ép” cái chuỗi đó thành con số bằng hàm int() (số nguyên) hoặc float() (số thực).
-
int("10")=10 -
10 + 20=30(Đúng!)
3. Giải pháp 1:

Cách này nhập từng số trên từng dòng, rất rõ ràng và dễ hiểu.
Code Python
# Hướng dẫn người dùng nhập số thứ nhất
# input() lấy chuỗi -> int() chuyển thành số nguyên
a_str = input("Nhập số thứ nhất: ")
a = int(a_str)
# Cách viết gộp gọn hơn cho số thứ hai
b = int(input("Nhập số thứ hai: "))
# Tính tổng
tong = a + b
# In kết quả
# Lưu ý: Cần chuyển ngược 'tong' thành chuỗi để nối vào câu thông báo (hoặc dùng f-string)
print("Tổng của hai số là: " + str(tong))
# Cách in hiện đại (Python 3.6+): f-string
print(f"Tổng là: {tong}")
Giải thích:
-
input(...): Dừng chương trình, chờ người dùng gõ phím và Enter. -
int(...): Chuyển đổi dữ liệu vừa nhập sang số nguyên. Nếu người dùng nhập chữ (ví dụ “abc”), chương trình sẽ báo lỗiValueError. -
f"...": F-string giúp in biến trực tiếp trong chuỗi mà không cần dùngstr().
4. Giải pháp 2:
Nếu bạn làm bài tập trên các trang chấm tự động, đề bài thường yêu cầu nhập 2 số trên cùng một dòng, cách nhau bởi dấu cách.
Ví dụ Input: 10 20
Code Python
# Nhập 1 dòng, tách ra bởi dấu cách, và ép kiểu hàng loạt
try:
# input().split(): Tách chuỗi dài thành list các chuỗi con ["10", "20"]
# map(float, ...): Áp dụng hàm float lên từng phần tử
a, b = map(float, input("Nhập 2 số (cách nhau bởi dấu cách): ").split())
print(f"Tổng là: {a + b}")
except ValueError:
print("Lỗi: Vui lòng chỉ nhập số!")
Phân tích:
-
split(): Cắt chuỗi dựa vào khoảng trắng. -
map(float, ...): Giúp chuyển đổi đồng thời cảavàbsang số thực (để tính được cả số thập phân như 1.5 + 2.5). -
try-except: Bắt lỗi nếu người dùng cố tình nhập chữ.
5. Lỗi thường gặp

| Lỗi sai | Biểu hiện | Cách sửa |
| Quên ép kiểu (Type Casting) | Nhập 1 và 2 nhưng ra 12. |
Dùng int(input()) hoặc float(input()). |
Lỗi TypeError khi in |
print("Tong: " + tong) báo lỗi. |
Sửa thành print("Tong: " + str(tong)) hoặc dùng dấu phẩy print("Tong:", tong). |
Lỗi ValueError |
Nhập abc hoặc 10.5 vào hàm int(). |
Nhập đúng định dạng số, hoặc dùng float() nếu muốn tính số thập phân. |
6. FAQ: Câu hỏi thường gặp
1. Làm sao để tính tổng số thập phân (ví dụ 1.5 + 2.5)?
Thay vì dùng int(), hãy dùng float(). Hàm float xử lý được cả số nguyên và số thập phân.
2. Tại sao tôi nhập đúng mà chương trình không chạy tiếp?
Có thể bạn đang dùng Python 2 (hàm raw_input). Hãy đảm bảo bạn đang dùng Python 3. Hoặc bạn quên bấm Enter sau khi nhập.
3. Tôi muốn nhập 3 số thì làm thế nào?
Tương tự: a, b, c = map(int, input().split()).
7. Học tiếp gì sau bài này?
Bạn đã biết cách nhập xuất dữ liệu cơ bản. Bước tiếp theo để thành thạo Python basic math:
-
Làm bài Tính diện tích hình chữ nhật (Kết hợp phép nhân
*). -
Làm bài Giải phương trình bậc 1 (Kết hợp
inputvà câu lệnh điều kiệnif-else). -
Tìm hiểu về Try-Except để xử lý lỗi khi người dùng nhập sai.
Các khóa học liên quan:
Một số sản phẩm từ Python:
Một số sách lập trình Python bạn hãy tham khảo