Mục tiêu học tập
- Thành thạo các toán tử số học và toán tử gán cơ bản
- Làm việc hiệu quả với biến và toán tử trong biểu thức
- Hiểu rõ nguyên lý màu RGB và cách ứng dụng
- Sử dụng thành thạo toán tử lấy dư trong các tình huống thực tế
Giới thiệu toán tử
1. Toán tử số học
| Toán tử | Mô tả | Ví dụ | Kết quả |
|---|---|---|---|
+ |
Phép cộng | 10 + 5 |
15 |
- |
Phép trừ | 10 - 5 |
5 |
* |
Phép nhân | 10 * 5 |
50 |
/ |
Phép chia | 10 / 4 |
2.5 |
% |
Lấy phần dư | 10 % 3 |
1 |
** |
Lũy thừa | 2 ** 3 |
8 |
// |
Chia lấy nguyên | 10 // 3 |
3 |
2. Toán tử gán
| Toán tử | Tương đương | Ví dụ |
|---|---|---|
= |
Gán trực tiếp | a = 10 |
+= |
a += b → a = a + b |
a += 5 |
-= |
a -= b → a = a - b |
a -= 3 |
*= |
a *= b → a = a * b |
a *= 2 |
/= |
a /= b → a = a / b |
a /= 4 |
%= |
a %= b → a = a % b |
a %= 3 |
3. Thứ tự ưu tiên toán tử
- Dấu ngoặc
()> Nhân chia* / // %> Cộng trừ+ - - Ví dụ: ``` ket_qua = (10 + 5) * (8 / 2) + 3 # Kết quả là 43.0
### Mô hình màu RGB
#### 1. Kiến thức cơ bản về RGB
- **Đỏ(R), Xanh lá(G), Xanh dương(B)** ba màu cơ bản của ánh sáng
- Hai cách biểu diễn:
- **Định dạng số nguyên 0-255**: `(255, 0, 0)` màu đỏ
- **Định dạng thập phân 0.0-1.0**: `(1.0, 0.0, 0.0)` màu đỏ
#### 2. Ứng dụng toán tử lấy dư trong RGB
muc_do_do = 1000 muc_do_do %= 256 # Kết quả là 232, đảm bảo trong khoảng 0-255
### Lập trình đồ họa với Turtle
#### 1. Cấu hình cơ bản
import turtle turtle.speed(1) # Cài đặt tốc độ vẽ (0-10) turtle.hideturtle() # Ẩn con trỏ rùa turtle.done() # Hoàn thành vẽ
#### 2. Cách cài đặt màu
Cách 1: Sử dụng tên màu
turtle.pencolor("red") # Cài đặt màu viền turtle.fillcolor("blue") # Cài đặt màu tô
Cách 2: Sử dụng giá trị RGB (định dạng 0.0-1.0)
turtle.pencolor(0, 0, 1) # Màu viền xanh dương turtle.fillcolor(1, 0, 0) # Màu tô đỏ
#### 3. Vẽ hình có tô màu
turtle.begin_fill() # Bắt đầu tô màu
Mã vẽ hình...
turtle.circle(50) # Vẽ hình tròn turtle.end_fill() # Kết thúc tô màu
### Điều chỉnh hình dạng bằng biến biểu thức
#### Nguyên lý tỷ lệ
kich_thuoc_mat = 100 kich_thuoc_mat = 1/2 * kich_thuoc_mat # Mắt bằng nửa kích thước mặt kich_thuoc_con_mat = 1/10 * kich_thuoc_mat # Con mắt bằng mười phần kích thước mặt x = 1/2 * kich_thuoc_mat # Tọa độ X tỷ lệ với kích thước mặt y = 12/10 * kich_thuoc_mat # Tọa độ Y tỷ lệ với kích thước mặt
### Tóm tắt khó khăn chính
1. **Khác biệt toán tử**: Ký hiệu `* /` trong lập trình khác với `× ÷` trong toán học
2. **Quá trình gán**: Hiểu `a += b` (tính trước rồi gán)
3. **Phép toán phân số**: Biểu thức biến `1/2 * kich_thuoc_mat`
4. **Phạm vi lấy dư**: Toán tử `%` đảm bảo giá trị trong khoảng cụ thể
### Các giá trị màu RGB thông dụng (định dạng 0.0-1.0)
#### Màu cơ bản
Màu tinh khiết
(1, 0, 0) # 🔴 Đỏ
(0, 1, 0) # 🟢 Xanh lá
(0, 0, 1) # 🔵 Xanh dương
(1, 1, 0) # 🟡 Vàng
(1, 0, 1) # 🟣 Tím
(0, 1, 1) # 🔷 Xanh ngọc
(1, 1, 1) # ⬜ Trắng
(0, 0, 0) # ⬛ Đen
Màu nhạt
(1, 0.5, 0.5) # Hồng (0.5, 1, 0.5) # Xanh lá nhạt (0.5, 0.5, 1) # Xanh dương nhạt (1, 1, 0.5) # Vàng nhạt
Màu khác thường dùng
(1, 0.65, 0) # 🟠 Cam (0.5, 0, 0.5) # Tím (0.75, 0.75, 0.75) # Xám nhạt
### Ví dụ minh họa
import turtle
turtle.speed(1)
Vẽ hình tròn viền xanh, tô đỏ
turtle.pencolor(0, 0, 1) # 🔵 Viền xanh dương turtle.fillcolor(1, 0, 0) # 🔴 Tô đỏ turtle.begin_fill() turtle.circle(60) # Vẽ hình tròn bán kính 60 turtle.end_fill()
turtle.done()
#### Kết quả chạy:
- Hiển thị hình tròn hoàn hảo với **viền xanh dương** và **tô màu đỏ**
- Trình bày rõ cách sử dụng cơ bản của `pencolor()` và `fillcolor()`
### Tổng kết
Bài học này tập trung vào:
- **Sử dụng toán tử**: Toán tử số học, toán tử gán, thứ tự ưu tiên
- **Biểu thức biến**: Mối quan hệ toán học để tỷ lệ hình dạng
- **Mô hình màu RGB**: Nguyên lý, cách biểu diễn, phạm vi giá trị
- **Đồ họa Turtle**: Cài đặt màu, tô hình, điều khiển tọa độ