Giá trị của biểu thức Python sau sẽ là bao nhiêu? Cách tính từng bước

Trả lời nhanh

Để tìm giá trị biểu thức Python, em tính theo thứ tự: trong ngoặc trước, rồi **, tiếp đến *, /, //, % (cùng cấp, từ trái sang phải), cuối cùng là + và -. Với đề gồm các số 6, 6, 2, 4, 5, 6, 2 và bốn đáp án 17, 20, 18, 19, hãy làm đúng quy trình dưới đây rồi đối chiếu kết quả.

1. Vì sao cùng các con số mà kết quả có thể khác nhau?

Kết quả của một biểu thức không chỉ phụ thuộc vào các số mà còn phụ thuộc vào toán tử đứng giữa chúng. Ví dụ 6 // 2 bằng 3, nhưng 6 % 2 bằng 0 và 6 / 2 bằng 3.0. Chỉ cần đọc sai một toán tử là chọn nhầm đáp án.

Vì thế, bước đầu tiên khi gặp bài này là chép lại biểu thức thật chính xác, đánh dấu từng toán tử, rồi mới tính.

2. Bảng thứ tự ưu tiên toán tử (từ cao xuống thấp)

Mức Toán tử Ý nghĩa
1 ( ) Tính trong ngoặc trước
2 ** Luỹ thừa
3 * / // % Nhân, chia, chia lấy phần nguyên, chia lấy dư (cùng mức, tính từ trái sang phải)
4 + - Cộng, trừ (cùng mức, tính từ trái sang phải)

Hai điểm hay quên: (1) *, /, //, % cùng mức nên gặp nhau thì làm từ trái sang phải, chứ không phải nhân trước chia sau; (2) / luôn cho số thực (kiểu float), còn // cho phần nguyên.

3. Quy trình 4 bước

  1. Gạch dưới các cặp ngoặc và tính trong ngoặc.
  2. Tính các phép **.
  3. Tính các phép *, /, //, % từ trái sang phải.
  4. Cuối cùng cộng, trừ từ trái sang phải.

4. Ví dụ minh hoạ có lời giải

Ví dụ 1. Tính 6 + 6 // 2 * 4 - 5 + 6 // 2.

  • 6 // 2 = 3 (phép đầu tiên từ trái sang), được 6 + 3 * 4 - 5 + 6 // 2.
  • 3 * 4 = 12, được 6 + 12 - 5 + 6 // 2.
  • 6 // 2 = 3, được 6 + 12 - 5 + 3.
  • Cộng trừ từ trái sang phải: 6 + 12 = 18; 18 − 5 = 13; 13 + 3 = 16.

Kết quả là 16. Nếu đề của em cho biểu thức khác đôi chút, kết quả sẽ khác, vì vậy luôn tính lại theo đúng biểu thức trong đề.

Ví dụ 2. Tính 2 + 3 * 4 ** 2 // 6.

  • 4 ** 2 = 16.
  • 3 * 16 = 48, rồi 48 // 6 = 8.
  • 2 + 8 = 10.

Ví dụ 3. Tính 17 % 5 + 2 * (7 - 3).

  • Trong ngoặc: 7 − 3 = 4.
  • 17 % 5 = 2 (17 = 3·5 + 2); 2 * 4 = 8.
  • Cộng: 2 + 8 = 10.

5. Phân biệt /, // và %

Biểu thức Kết quả Ghi chú
7 / 2 3.5 Chia thông thường, kiểu float
7 // 2 3 Lấy phần nguyên
7 % 2 1 Lấy phần dư
-7 // 2 -4 Làm tròn xuống (về phía số nhỏ hơn)

Chú ý dòng cuối: -7 // 2 là −4, không phải −3. Đây là lỗi nhiều bạn mắc khi làm trắc nghiệm có số âm.

6. Lỗi sai thường gặp

  • Cộng trước nhân vì “thấy số đứng gần”. Phải theo bảng ưu tiên.
  • Tính a - b + c thành a - (b + c). Đúng là từ trái sang phải.
  • Quên rằng ** được tính trước *, ví dụ 3 * 2 ** 2 bằng 12 chứ không phải 36.
  • Nhầm % (lấy dư) với phần trăm.

7. Cách kiểm tra bằng máy

Em có thể mở chế độ gõ lệnh trực tiếp của Python (dấu nhắc >>>), nhập biểu thức rồi nhấn Enter để máy trả kết quả. Tuy nhiên, trong bài kiểm tra bằng giấy, em vẫn phải tự tính từng bước và ghi rõ các bước trung gian.

8. Luyện tập

  1. 20 - 6 // 4 * 3 + 2 ** 3 = ?
    Đáp án: 6 // 4 = 1; 1 * 3 = 3; 2 ** 3 = 8; 20 − 3 + 8 = 25.
  2. 10 + 9 % 4 * 2 - 3 = ?
    Đáp án: 9 % 4 = 1; 1 * 2 = 2; 10 + 2 − 3 = 9.
  3. 5 + 3 * 2 ** 2 // 4 = ?
    Đáp án: 2 ** 2 = 4; 3 * 4 = 12; 12 // 4 = 3; 5 + 3 = 8.

Mẹo nhớ: “Ngoặc – Mũ – Nhân chia – Cộng trừ”, giống thứ tự ưu tiên trong Toán nhưng Python có thêm hai phép // và % nằm ngang hàng với nhân chia.

Câu hỏi thường gặp

Thứ tự ưu tiên toán tử trong Python là gì?

Ngoặc, luỹ thừa (**), rồi nhân chia (*, /, //, %) cùng mức từ trái sang phải, cuối cùng là cộng trừ.

// và % trong Python khác nhau thế nào?

// lấy phần nguyên của phép chia, ví dụ 7 // 2 bằng 3; % lấy phần dư, ví dụ 7 % 2 bằng 1.

Vì sao -7 // 2 bằng -4?

Phép // làm tròn xuống về số nguyên nhỏ hơn hoặc bằng thương thực -3,5, nên kết quả là -4.