Trả lời nhanh
Để viết 3 mũ 4 trong Python, em dùng toán tử lũy thừa hai dấu sao: 3**4, kết quả là 81 (vì 3 × 3 × 3 × 3 = 81). Không dùng 3^4, vì trong Python dấu ^ là phép XOR theo bit và 3^4 cho kết quả 7, hoàn toàn khác lũy thừa.
Toán tử lũy thừa trong Python
Python có sẵn toán tử ** để tính lũy thừa. Cú pháp: cơ_số ** số_mũ. Toán tử này đứng giữa hai số và trả về kết quả ngay.
print(3**4) # 81 print(2**10) # 1024 print(5**0) # 1 print(2**(-1)) # 0.5
Chú ý số mũ âm cho ra số thực, vì 2-1 = 1/2 = 0,5. Còn khi cả cơ số và số mũ là số nguyên không âm, kết quả là số nguyên.
So sánh các cách viết dễ nhầm
| Biểu thức | Ý nghĩa trong Python | Kết quả |
|---|---|---|
| 3**4 | Lũy thừa 3 mũ 4 | 81 |
| 3^4 | XOR theo bit giữa 3 và 4 | 7 |
| 3*4 | Phép nhân | 12 |
| 34 | Chỉ là số ba mươi tư | 34 |
| 3333 | Số ba nghìn ba trăm ba mươi ba | 3333 |
| pow(3, 4) | Hàm lũy thừa có sẵn | 81 |
Vì sao ^ cho kết quả 7?
Phép XOR so sánh từng bit của hai số. Số 3 viết nhị phân là 011, số 4 là 100. Hai số khác nhau ở cả ba bit nên XOR cho 111, tức là 7. Nhiều bạn học Toán quen viết dấu mũ bằng ^ trên máy tính, nhưng trong Python ký hiệu này mang nghĩa khác.
Dùng hàm pow()
Ngoài toán tử **, Python có hàm pow(a, b) tính a mũ b. Với số nhỏ, hai cách cho kết quả như nhau. Hàm pow còn nhận thêm tham số thứ ba để tính lũy thừa theo modun, ví dụ pow(3, 4, 5) cho phần dư của 81 khi chia 5 là 1.
Ứng dụng nhỏ
Tính diện tích hình vuông cạnh a: s = a**2. Tính thể tích hình lập phương: v = a**3. Tính căn bậc hai: x**0.5 (ví dụ 16**0.5 = 4.0). Các biểu thức này thường dùng trong bài tập lập trình cơ bản.
Lỗi sai thường gặp
- Dùng ^ thay cho ** và nhận kết quả sai mà không có thông báo lỗi nào.
- Viết 3×4 hoặc 34 và nghĩ rằng Python hiểu là 3 mũ 4.
- Nhầm thứ tự: 4**3 = 64 khác 3**4 = 81.
- Quên rằng ** có độ ưu tiên cao hơn phép nhân và chia: 2*3**2 cho 18, không phải 36.
Mẹo nhớ
Nhớ “nhân một sao, mũ hai sao”: một dấu * là nhân, hai dấu ** là lũy thừa. Số lượng dấu sao tăng lên thì phép toán cũng “mạnh” hơn.
Luyện tập có đáp án
- Viết biểu thức 5 mũ 3 trong Python. Đáp án: 5**3, kết quả 125.
- Kết quả của 2*3**2 là bao nhiêu? Đáp án: 18, vì tính 3**2 = 9 trước rồi nhân với 2.
- Lệnh print(2^5) in ra gì? Đáp án: 7, vì 2^5 là XOR nhị phân 010 với 101 thành 111.
Câu hỏi thường gặp
Để viết 3 mũ 4 trong Python dùng gì?
Dùng toán tử lũy thừa 3**4 hoặc hàm pow(3, 4); cả hai cho kết quả 81.
Tại sao 3^4 trong Python không bằng 81?
Vì dấu ^ trong Python là phép XOR theo bit, không phải lũy thừa. 3^4 cho kết quả 7.
Độ ưu tiên của toán tử ** so với phép nhân thế nào?
Toán tử ** có độ ưu tiên cao hơn phép nhân và chia, nên 2*3**2 được tính là 2*9 = 18.