Tin Học KHMT
Ôn tập Tin học THPT › Tin học 10 › Bài 21
Tin học 10

Bài 21. Nhập dữ liệu và các phép toán

Bài học hướng dẫn cách dùng lệnh input() để nhận dữ liệu người dùng gõ vào, cách ép kiểu dữ liệu đó sang số để tính toán được, và các phép toán số học cơ bản trong Python - từ cộng, trừ, nhân, chia đến chia lấy phần nguyên, chia lấy dư và luỹ thừa.

Chủ đề F · Lập trình, Thuật toán & CTDL (KHMT) - đọc khoảng 12 phút · 24 câu luyện tập trong ứng dụng

Tương ứng sách giáo khoa
  • Cánh DiềuTin học 10 - Chủ đề F · Bài 4. Các kiểu dữ liệu số và câu lệnh vào - ra đơn giảntr. 64
  • Kết nối tri thứcTin học 10 - Bài 18. Các lệnh vào ra đơn giảntr. 97–100
Xem bảng đối chiếu cả bộ →

Bắt đầu bằng một hình dung

Hãy hình dung một chiếc máy tính bỏ túi - loại máy cầm tay dùng để cộng, trừ, nhân, chia - đang nằm yên trên bàn với màn hình hiện số 0. Cỗ máy đó sẽ không tự tính ra bất kì kết quả nào nếu không có ai chạm vào nó. Người dùng phải bấm các phím số để đưa một giá trị vào máy, bấm tiếp phím phép tính để máy biết cần làm gì với giá trị đó, rồi bấm dấu bằng để xem kết quả hiện lên màn hình. Không có số bấm vào trước, máy không có gì để tính cả.

Một chương trình Python xử lí dữ liệu do người dùng cung cấp cũng vận hành theo đúng nguyên lí ấy: trước khi tính toán bất cứ điều gì, chương trình cần một cách để nhận giá trị từ người dùng gõ vào - đó là việc của lệnh input(). Chỉ sau khi đã có giá trị trong tay, chương trình mới dùng đến các phép toán để xử lí tiếp, giống như máy tính bỏ túi chỉ tính toán sau khi đã có số được bấm vào.

Nội dung bài học

  1. Nhận dữ liệu bằng lệnh input()
  2. Các phép toán số học trong Python

Tóm tắt lý thuyết cần nhớ

  • Lệnh input() tạm dừng chương trình để chờ người dùng gõ dữ liệu từ bàn phím, và luôn trả về kết quả dưới dạng chuỗi (str), dù người dùng gõ toàn chữ số.
  • Muốn dùng dữ liệu vừa nhập để tính toán số học, phải ép kiểu bằng int() (số nguyên) hoặc float() (số thực), thường ép kiểu ngay trong cùng dòng với input().
  • Các phép toán số học cơ bản: + - * / (chia lấy số thực), // (chia lấy phần nguyên), % (chia lấy số dư), ** (luỹ thừa).
  • Quên ép kiểu rồi cộng hai kết quả input() bằng dấu + sẽ nối chuỗi chứ không cộng số học - ví dụ '2' + '3' cho ra chuỗi '23', không phải số 5.

Thuật ngữ tiếng Anh trong bài

Tiếng AnhĐọc làNghĩa
inputIN-pútđầu vào (input)
Những gì em đưa vào máy: gõ chữ, bấm chuột...
printpơ-rin-tờlệnh in ra màn hình (print)
Lệnh in kết quả ra màn hình cho em nhìn thấy.
intin-tờkiểu số nguyên (int)
Số nguyên, tức là số không có phần thập phân, ví dụ 5 hoặc -2.
floatphơ-lốtkiểu số thực (float)
Số thực, là số có phần thập phân, ví dụ 3.14 hoặc 0.5.
strxì-tơkiểu chuỗi (str)
Kiểu chuỗi chữ trong Python, dùng cho đoạn chữ viết trong dấu nháy.
boolbu(-lờ)kiểu lôgic (bool)
Kiểu lôgic, chỉ có hai giá trị True (Đúng) hoặc False (Sai) - giống công tắc chỉ có bật hoặc tắt, không nửa vời.

Câu hỏi trắc nghiệm có đáp án

Mấy câu mẫu để bạn tự kiểm tra ngay. Trong ứng dụng, bài này có đủ 24 câu, chấm điểm tự động và giải thích từng câu sai.

Câu 1 · Nhận biết
Trong Python, lệnh nào dùng để chương trình tạm dừng, chờ người dùng gõ dữ liệu từ bàn phím rồi nhấn Enter?
  1. print()
  2. input()
  3. int()
  4. range()
Đáp án: B - input() chính là lệnh dùng để nhận dữ liệu người dùng gõ vào từ bàn phím. print() dùng để in kết quả ra màn hình, int() dùng để ép kiểu sang số nguyên, còn range() dùng để tạo ra một dãy số - cả ba đều không dùng để nhận dữ liệu từ người dùng.
Câu 2 · Nhận biết
Dù người dùng gõ vào một dãy chữ số như 25, giá trị mà lệnh input() trả về luôn thuộc kiểu dữ liệu nào?
  1. Số nguyên (int)
  2. Số thực (float)
  3. Chuỗi kí tự (str)
  4. Đúng/sai (bool)
Đáp án: C - Bất kể người dùng gõ vào chữ hay số, input() luôn trả về kết quả dưới dạng chuỗi kí tự (str). Muốn có được số nguyên hoặc số thực từ dữ liệu đó, phải chủ động ép kiểu bằng int() hoặc float().
Câu 3 · Thông hiểu
Biến a và biến b đều được gán bằng lệnh input() (chưa ép kiểu). Người dùng lần lượt nhập vào 2 rồi 3. Lệnh print(a + b) khi đó sẽ in ra gì?
  1. 5
  2. 23
  3. 2 3
  4. Chương trình báo lỗi và dừng lại
Đáp án: B - Vì chưa ép kiểu, ab đều đang là chuỗi '2''3'. Dấu + giữa hai chuỗi trong Python thực hiện phép nối chuỗi chứ không cộng số học, nên kết quả in ra là chuỗi 23, không phải số 5.
Câu Đúng/Sai (Phần II) · Thông hiểu
Cho biết mỗi phát biểu sau đúng hay sai:
  • a)Lệnh input() luôn trả về dữ liệu dưới dạng chuỗi kí tự, dù người dùng gõ vào toàn chữ số.Đúng
  • b)Muốn cộng đúng hai số vừa nhận từ input() theo nghĩa số học, không cần ép kiểu gì thêm.Sai
  • c)Trong Python, phép // cho ra thương đã bỏ phần lẻ, còn phép % cho ra số dư của phép chia đó.Đúng
  • d)Biểu thức 2 ** 3 trong Python có nghĩa là lấy 2 nhân với 3, kết quả bằng 6.Sai
Vì sao:
  • (a) Đúng - input() luôn trả về kiểu chuỗi (str), bất kể nội dung gõ vào là gì.
  • (b) Sai - nếu không ép kiểu, dấu + giữa hai kết quả input() sẽ nối chuỗi chứ không cộng số học, nên vẫn cần ép kiểu bằng int() hoặc float().
  • (c) Đúng - // lấy phần nguyên của phép chia (bỏ phần lẻ), % lấy đúng phần dư còn lại của phép chia đó.
  • (d) Sai - ** là phép luỹ thừa, 2 ** 3 nghĩa là 2 nhân với chính nó 3 lần, bằng 8, không phải phép nhân 2 x 3 (bằng 6).

Thử ngay: minh hoạ từng bước

Bấm từng bước để tự xem cơ chế hoạt động, hoặc bấm “Tự chạy” cho nó tiến mỗi giây một lần. Đổi được dữ liệu đầu vào - không cần đăng nhập.

Học trọn bài này trong ứng dụng

Bài giảng đầy đủ, 24 câu luyện tập chấm tự động, thi thử đúng cấu trúc đề tốt nghiệp (24 trắc nghiệm + 4 Đúng/Sai), bài thực hành máy tự chấm và gia sư AI giải thích chỗ sai.

Mở bài 21 trong ứng dụng

Phần học miễn phí, không cần tạo tài khoản.