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.
- 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
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
- Nhận dữ liệu bằng lệnh input()
- 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ặcfloat()(số thực), thường ép kiểu ngay trong cùng dòng vớiinput(). - 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 |
|---|---|---|
| input | IN-pút | đầu vào (input) Những gì em đưa vào máy: gõ chữ, bấm chuột... |
| pơ-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. | |
| int | in-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. |
| float | phơ-lốt | kiể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. |
| str | xì-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. |
| bool | bu(-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.
print()input()int()range()
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.25, giá trị mà lệnh input() trả về luôn thuộc kiểu dữ liệu nào?- Số nguyên (
int) - Số thực (
float) - Chuỗi kí tự (
str) - Đúng/sai (
bool)
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().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ì?5232 3- Chương trình báo lỗi và dừng lại
a và b đều đang là chuỗi '2' và '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.- 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 ** 3trong Python có nghĩa là lấy2nhân với3, kết quả bằng6.Sai
- (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ằngint()hoặcfloat(). - (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 ** 3nghĩa là2nhân với chính nó3lần, bằng8, không phải phép nhân2 x 3(bằng6).
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.
Phần học miễn phí, không cần tạo tài khoản.
Bài liên quan - Lập trình, Thuật toán & CTDL (KHMT)
Cùng mạch kiến thức với bài này, học nối tiếp cho chắc phần lí thuyết.