Trả lời nhanh
Lệnh print() in ra giá trị của biểu thức bên trong. Python tính theo thứ tự: ngoặc (), rồi luỹ thừa **, rồi * / // % (từ trái sang phải), cuối cùng + và −. Ví dụ print(13 + 10 * 3 ** 2) in ra 103, vì 3**2 = 9, 10*9 = 90, 13+90 = 103. Các ví dụ dưới đây là ví dụ tự đặt để em luyện cách tính.
Dạng câu hỏi “Lệnh sau sẽ in ra kết quả gì?” thường cho một dòng print(...) chứa các số như 13, 10, 3, 2 nối với nhau bằng phép toán. Em không cần chạy máy, chỉ cần tính đúng thứ tự. Nếu đề của em có số liệu khác, hãy áp dụng đúng các bước bên dưới.
Bước 1: Nhớ thứ tự ưu tiên của phép toán
| Mức | Phép toán | Ghi chú |
|---|---|---|
| 1 (cao nhất) | ( ) | Tính trong ngoặc trước |
| 2 | ** | Luỹ thừa, tính từ phải sang trái |
| 3 | *, /, //, % | Cùng mức, tính từ trái sang phải |
| 4 (thấp nhất) | +, − | Cùng mức, tính từ trái sang phải |
Mẹo nhớ: “Ngoặc – Mũ – Nhân chia – Cộng trừ”, giống thứ tự trong Toán nhưng thêm // và % nằm cùng hàng với nhân chia.
Bước 2: Hiểu ý nghĩa từng toán tử
/: chia thường, kết quả luôn là số thực.print(13 / 10)in ra1.3;print(10 / 2)in ra5.0.//: chia lấy phần nguyên.13 // 10= 1.%: chia lấy phần dư.13 % 10= 3.**: luỹ thừa.3 ** 2= 9.
Bước 3: Tính qua các ví dụ mẫu
Ví dụ 1. print(13 + 10 * 3 ** 2)
- 3 ** 2 = 9
- 10 * 9 = 90
- 13 + 90 = 103
Kết quả: 103.
Ví dụ 2. print((13 + 10) * 3 ** 2)
Ngoặc trước: 23. Luỹ thừa: 9. Nhân: 23 * 9 = 207. Kết quả: 207. So với ví dụ 1, chỉ thêm cặp ngoặc mà kết quả khác hẳn.
Ví dụ 3. print(13 - 10 * 3 // 2)
10 * 3 = 30, rồi 30 // 2 = 15 (cùng mức, từ trái sang phải), cuối cùng 13 − 15 = −2. Kết quả: -2.
Ví dụ 4. print(13 // 10 * 3 % 2)
Từ trái sang phải: 13 // 10 = 1; 1 * 3 = 3; 3 % 2 = 1. Kết quả: 1.
Ví dụ 5. print(2 ** 3 ** 2)
Luỹ thừa tính từ phải sang trái: 3 ** 2 = 9, rồi 2 ** 9 = 512. Kết quả: 512 (không phải 64).
Khi trong print() có chuỗi hoặc nhiều giá trị
print("13" + "10")in ra1310: dấu + nối hai chuỗi, không cộng số.print("3" * 2)in ra33: nhân chuỗi với số nguyên là lặp chuỗi.print(13 + 10, 3 ** 2)in ra23 9: hai giá trị cách nhau dấu phẩy được in cách nhau một dấu cách.print("13 + 10")in nguyên văn13 + 10vì nằm trong dấu nháy nên là chuỗi, không tính.
Lỗi sai thường gặp
- Tính cộng trước nhân: ở ví dụ 1 ra (13+10)*9 = 207 là sai.
- Quên rằng
/luôn cho số thực: viết 5 thay vì 5.0. - Tính
-3 ** 2thành 9. Thực tế ** ưu tiên hơn dấu trừ nên kết quả là-9. - Nhầm
//với/, hoặc nhầm%với phần trăm.
Bài luyện tập
print(7 + 2 * 3 ** 2 - 4)print(20 // 6 % 4)print((5 + 3) ** 2 / 4)
Đáp án:
- 3**2 = 9; 2*9 = 18; 7 + 18 − 4 =
21. - 20 // 6 = 3; 3 % 4 =
3. - (5+3) = 8; 8**2 = 64; 64 / 4 =
16.0.
Cách làm bài nhanh trong đề trắc nghiệm
Em hãy gạch chân các phép luỹ thừa trước, rồi các phép nhân – chia – chia nguyên – chia dư từ trái sang phải, cuối cùng mới cộng trừ. Viết kết quả từng bước ra nháp, không tính nhẩm gộp. Sau đó kiểm tra kiểu dữ liệu: có dấu / thì kết quả có phần thập phân.
Câu hỏi thường gặp
Lệnh print() trong Python dùng để làm gì?
print() hiển thị giá trị lên màn hình. Nếu bên trong là biểu thức, Python tính giá trị biểu thức rồi mới in; nếu là chuỗi trong dấu nháy thì in nguyên văn.
Trong Python, // và % khác nhau thế nào?
// lấy phần nguyên của phép chia, % lấy phần dư. Ví dụ 13 // 10 = 1 và 13 % 10 = 3.
Vì sao print(10 / 2) in ra 5.0 chứ không phải 5?
Toán tử / trong Python luôn trả về số thực, kể cả khi chia hết. Muốn kết quả nguyên thì dùng //.
Thứ tự ưu tiên các phép toán trong Python là gì?
Ngoặc (), luỹ thừa **, rồi * / // % từ trái sang phải, cuối cùng + và − từ trái sang phải.