Giải Tin Học 10 trang 96
Lời giải chi tiết SGK Lớp 10 · Môn Tin Há»c · Trang 96–97
Nguon: Tin Hoc 10 - Ket Noi Tri Thuc Voi Cuoc Song (trang 96 – 97)
🔍 Kiến thức cần nhớ
Từ khoá (keyword) là các từ tiếng Anh đặc biệt được ngôn ngữ Python dành riêng cho mục đích xây dựng cấu trúc chương trình.
- Không được phép đặt tên biến hay các định danh trùng với từ khoá.
- Nếu đặt tên biến trùng từ khoá, Python sẽ báo lỗi
SyntaxError: invalid syntax.
Một số từ khoá thường gặp trong Python 3.x:
False, None, True, and, as, assert, break, class, continue, def, del,
elif, else, except, finally, for, from, global, if, import, in, is,
lambda, nonlocal, not, or, pass, raise, return, try, while, with, yield
💡 Mẹo nhớ: Quy tắc đặt tên biến hợp lệ: - Chỉ gồm chữ cái, chữ số và dấu gạch dưới_- Không bắt đầu bằng chữ số - Không trùng với từ khoá - Python phân biệt chữ HOA và chữ thường (Truelà từ khoá, nhưngtruethì không)
⚙️ Bài tập
Câu hỏi (trang 95): Các tên biến sau có hợp lệ không?
Đề bài: Xét tính hợp lệ của: a) _if b) global c) nolocal d) return e) true
Cách giải — Đối chiếu với quy tắc đặt tên và bảng từ khoá
| Tên | Hợp lệ? | Giải thích |
|---|---|---|
a) _if | ✅ Hợp lệ | Bắt đầu bằng dấu _, gồm các ký tự cho phép. _if khác từ khoá if |
b) global | ❌ Không hợp lệ | Trùng với từ khoá global |
c) nolocal | ✅ Hợp lệ | Từ khoá là nonlocal (có chữ "n" ở giữa), còn nolocal thì khác → không trùng |
d) return | ❌ Không hợp lệ | Trùng với từ khoá return |
e) true | ✅ Hợp lệ | Từ khoá là True (chữ T HOA). Python phân biệt hoa thường nên true không trùng từ khoá |
⚠️ Lưu ý thi: Câu c) và e) là bẫy thường gặp.nolocal≠nonlocalvàtrue≠True, nên chúng vẫn hợp lệ. Đọc thật kỹ từng ký tự.
THỰC HÀNH — Nhiệm vụ 1
Đề bài: Thực hiện các phép tính sau trong Python, so sánh với việc tính biểu thức toán học.
Cách 1 — Tính trực tiếp trong Python rồi đối chiếu
a) (1 + 2 + 3 + ... + 10)^3
>>> (1+2+3+4+5+6+7+8+9+10)**3
166375
Toán học: 1 + 2 + ... + 10 = 55, nên 55^3 = 166375. Kết quả trùng khớp.
b) 1/2 + 1/3 + 1/4 + 1/5
>>> 1/2+1/3+1/4+1/5
1.2833333333333332
Toán học: quy đồng mẫu 60 → 30/60 + 20/60 + 15/60 + 12/60 = 77/60 ≈ 1,2833...
Python cho kết quả số thực vì dấu / là phép chia thực. Kết quả phù hợp (sai số rất nhỏ do biểu diễn số thực).
c) Gán x = 2, y = 5 rồi tính (x + y)(x^2 + y^2 − 1)
>>> x, y = 2, 5
>>> (x+y)*(x**2+y**2-1)
196
Toán học: (2 + 5) × (2^2 + 5^2 − 1) = 7 × (4 + 25 − 1) = 7 × 28 = 196. Trùng khớp.
d) Gán a = 2, b = 3, c = 4 rồi tính (a + b + c)(a + b − c)
>>> a, b, c = 2, 3, 4
>>> (a+b+c)*(a+b-c)
9
Toán học: (2 + 3 + 4) × (2 + 3 − 4) = 9 × 1 = 9. Trùng khớp.
💡 Mẹo nhớ: Trong Python, lũy thừa viết bằng(không phải^), và phép nhân bắt buộc* dùng dấu— viết(x+y)(x**2...)sẽ báo lỗi.
THỰC HÀNH — Nhiệm vụ 2
Đề bài: Gán giá trị cho biến R là bán kính hình tròn, viết chương trình tính và in chu vi, diện tích.
Cách giải — Soạn chương trình theo hướng dẫn
R = 4.5
pi = 3.14
print("Chu vi hình tròn là:", 2*R*pi)
print("Diện tích hình tròn là:", pi*R*R)
Kết quả in ra:
Chu vi hình tròn là: 28.26
Diện tích hình tròn là: 63.585
Giải thích: Chu vi C = 2 × π × R = 2 × 3,14 × 4,5 = 28,26; Diện tích S = π × R^2 = 3,14 × 4,5 × 4,5 = 63,585.
💡 Mẹo nhớ: Thay vì viếtpi = 3.14thủ công, ta có thể dùngimport mathrồi gọimath.piđể có giá trị π chính xác hơn.
⚙️ LUYỆN TẬP
Câu 1
Đề bài: Lệnh sau có lỗi gì?
>>> x = 1
>>> 123a = x + 1
SyntaxError: invalid syntax
Cách giải — Phân tích quy tắc đặt tên biến
Lệnh 123a = x + 1 báo lỗi vì tên biến 123a không hợp lệ: tên biến trong Python không được bắt đầu bằng chữ số.
Để sửa, đổi tên biến bắt đầu bằng chữ cái hoặc dấu gạch dưới, ví dụ a123:
>>> x = 1
>>> a123 = x + 1
Câu 2
Đề bài: Lệnh sau sẽ in ra kết quả gì?
>>> print("đồ rê mi "*3 + "pha son la si đô "*2)
Cách giải — Phân tích phép nhân và cộng xâu
Với xâu ký tự: phép * lặp lại xâu, phép + nối các xâu.
"đồ rê mi "*3="đồ rê mi đồ rê mi đồ rê mi "(lặp 3 lần)"pha son la si đô "*2="pha son la si đô pha son la si đô "(lặp 2 lần)- Phép
+nối hai xâu lại.
Kết quả in ra:
đồ rê mi đồ rê mi đồ rê mi pha son la si đô pha son la si đô
💡 Mẹo nhớ: Với xâu:xâu * n= lặp lại n lần;xâu1 + xâu2= ghép nối. Đừng nhầm với phép toán trên số.
⚙️ VẬN DỤNG
Câu 1
Đề bài: Viết các lệnh đổi số giây ss cho trước sang số ngày, giờ, phút, giây và in kết quả. Ví dụ ss = 684500 thì in ra: 684500 giây = 7 ngày 22 giờ 8 phút 20 giây.
Cách 1 — Dùng phép chia lấy nguyên // và chia lấy dư %
ss = 684500
ngay = ss // 86400 # số ngày
ss = ss % 86400 # số giây còn lại
gio = ss // 3600 # số giờ
ss = ss % 3600
phut = ss // 60 # số phút
giay = ss % 60 # số giây
print("684500 giây =", ngay, "ngày", gio, "giờ", phut, "phút", giay, "giây")
Kiểm tra từng bước với ss = 684500:
- ngày = 684500 // 86400 = 7; còn lại 684500 − 7×86400 = 79700 giây
- giờ = 79700 // 3600 = 22; còn lại 79700 − 22×3600 = 500 giây
- phút = 500 // 60 = 8; còn lại 500 − 8×60 = 20 giây
- giây = 20
Kết quả in ra:
684500 giây = 7 ngày 22 giờ 8 phút 20 giây
Cách 2 — Dùng hàm divmod cho gọn
Hàm divmod(a, b) trả về đồng thời thương nguyên và số dư (a // b, a % b).
ss = 684500
ngay, ss = divmod(ss, 86400)
gio, ss = divmod(ss, 3600)
phut, giay = divmod(ss, 60)
print(684500, "giây =", ngay, "ngày", gio, "giờ", phut, "phút", giay, "giây")
💡 Mẹo nhớ: Quy đổi luôn theo thứ tự đơn vị lớn → nhỏ. Lấy//được phần đơn vị lớn, lấy%giữ phần còn lại để chia tiếp.
Câu 2
Đề bài: Cho biết giá trị x, y trước và sau khi thực hiện các lệnh sau. Nhận xét gì về kết quả?
>>> x, y = 10, 7
>>> x, y = y, x
Cách giải — Phân tích lệnh gán đồng thời
- Sau lệnh
x, y = 10, 7: x = 10, y = 7 - Lệnh
x, y = y, x: Python tính vế phải trước thành cặp(7, 10)rồi gán đồng thời cho x, y. Sau lệnh: x = 7, y = 10
| x | y | |
|---|---|---|
| Trước | 10 | 7 |
| Sau | 7 | 10 |
Nhận xét: Lệnh x, y = y, x thực hiện hoán đổi giá trị của hai biến x và y cho nhau. Đây là cách hoán đổi rất gọn của Python, không cần dùng biến trung gian như nhiều ngôn ngữ khác.
⚠️ Lưu ý thi: Đây là dạng câu hỏi rất hay ra. Nhờ phép gán đồng thời, Python tính toàn bộ vế phải xong mới gán, nên x, y = y, x hoán đổi đúng mà không làm mất dữ liệu.
🎯 Ghi nhớ: - Từ khoá là từ dành riêng của ngôn ngữ, không được dùng làm tên biến. - Tên biến hợp lệ: gồm chữ, số, dấu_; không bắt đầu bằng số; không trùng từ khoá; phân biệt HOA/thường. - Trong Python: lũy thừa dùng*, nhân dùng, chia lấy nguyên//, chia lấy dư%. - Phép gán đồng thờix, y = y, xgiúp hoán đổi giá trị hai biến không cần biến trung gian.
