Tính tổng hai số nhập từ bàn phím Python
Tính tổng hai số nhập từ bàn phím Python
  • Bạn viết chương trình nhưng kết quả của 1 + 1 lại ra 11 thay 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()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:


1. Đề bài tổng hai số

Tính tổng hai số nhập từ bàn phím Python
Tính tổng hai số nhập từ bàn phím Python

Đề bài:

Viết chương trình Python yêu cầu người dùng nhập vào hai số ab 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: 

Tính tổng hai số nhập từ bàn phím Python
Tính tổng hai số nhập từ bàn phím Python

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:

  1. input(...): Dừng chương trình, chờ người dùng gõ phím và Enter.

  2. 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ỗi ValueError.

  3. f"...": F-string giúp in biến trực tiếp trong chuỗi mà không cần dùng str().


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ả ab sang 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 

Tính tổng hai số nhập từ bàn phím Python
Tính tổng hai số nhập từ bàn phím Python
Lỗi sai Biểu hiện Cách sửa
Quên ép kiểu (Type Casting) Nhập 12 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:

  1. Làm bài Tính diện tích hình chữ nhật (Kết hợp phép nhân *).

  2. Làm bài Giải phương trình bậc 1 (Kết hợp input và câu lệnh điều kiện if-else).

  3. 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

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *