Link tải các bài giảng khác
1. Một biến được định nghĩa trong chương trình chính (bên ngoài các hàm) thì sẽ được sử dụng như thế nào bên trong các hàm?
2. Một biến được khai báo bên trong một hàm thì có sử dụng được ở bên ngoài hàm đó hay không?
1. Biến đã khai báo bên ngoài hàm chỉ có thể truy cập giá trị để sử dụng bên trong hàm mà không làm thay đổi được giá trị của biến đó (trừ trường hợp với từ khoá global).
2. Các biến khai báo bên trong hàm có tính địa phương, không có hiệu lực bên ngoài hàm.
1. PHẠM VI CỦA BIẾN KHAI BÁO TRONG HÀM
Hoạt động 1 Phạm vi của biến khi khai báo trong hàm
Quan sát các lệnh sau để tìm hiểu phạm vi có hiệu lực của biến khi khai báo trên một hàm.
Các biến được khai báo bên trong một hàm chỉ được sử dụng bên trong hàm đó. Chương trình chính không sử dụng được.
Trong Python tất cả các biến khai báo bên trong hàm đều có tính địa phương (cục bộ), không có hiệu lực ở bên ngoài hàm.
Câu hỏi (trang 137)
1. Giả sử có các lệnh sau:
Giá trị của a, b bằng bao nhiêu sau khi thực hiện lệnh sau?
a) f(1, 2) b) f(10, 20)
2. Ta có thể khai báo một biến bên trong hàm trùng tên với biến đã khai báo trước đó bên ngoài hàm được không?
1. a). a, b = 1, 2
a = 1 + 2 = 3
b = 2 * 3 = 6
b). a, b = 10, 20
a = 10 + 20 = 30
b = 20 * 30 = 600
2. Ta có thể khai báo biến bên trong hàm trùng tên với biến bên ngoài hàm. Vì các biến khai báo bên trong hàm có tính địa phương, không có hiệu lực bên ngoài hàm.
2. PHẠM VI CỦA BIẾN KHAI BÁO NGOÀI HÀM
Ví dụ 1. Biến khai báo bên ngoài hàm không có tác dụng bên trong hàm.
Ví dụ 2. Bên trong hàm có thể truy cập để sử dụng giá trị của biến đã khai báo trước đó ở bên ngoài hàm.
Lưu ý: nếu muốn biến bên ngoài vẫn có tác dụng bên trong hàm thì chỉ cần khai báo lại biến này bên trong hàm với từ khóa global.
Biến đã khai báo bên ngoài sẽ không có tác dụng bên trong hàm như một biến. Nếu muốn có tác dụng thì cần khai báo lại biến này trong hàm với từ khoá global.
Câu hỏi (trang 138)
Giả sử hàm f(x,y) được định nghĩa như sau:
a = 2 × (1 + 2) = 6
6 + 10 = 16
Kết quả in ra: 16
Phạm vi của biến
Nhiệm vụ 1. Viết hàm với đầu vào là danh sách A chứa các số và số thực x. Hàm trả lại một danh sách kết quả B từ danh sách A bằng cách chỉ giữ lại các phần tử lớn hơn hoặc bằng x.
Hướng dẫn. Biến B kiểu danh sách cần được định nghĩa trong hàm và được bổ sung thêm các phần tử từ A nếu thỏa mãn điều kiện lớn hơn hoặc bằng x.
Nhiệm vụ 2. Viết hàm với đầu vào là xâu kí tự Str và số c, đầu ra là danh sách các từ được tách ra từ xâu Str nhưng đã được chuyển thành chữ in hoa hoặc chữ in thường. Hoặc chỉ chuyển kí tự đầu các từ thành chữ in hoa tùy thuộc vào tham số đầu vào c như sau:
- Nếu c = 0, danh sách B là các từ được chuyển thành chữ in hoa.
- Nếu c = 1, danh sách B là các từ được chuyển thành chữ in thường.
- Nếu c = 2, danh sách B là các từ được chuyển viết chữ hoa kí tự đầu của mỗi từ.
Hướng dẫn. Chúng ta cần sử dụng các lệnh sau:
Str.upper() – chuyển kí tự của xâu thành chữ in hoa.
Str.lower() – chuyển kí tự của xâu thành chữ in thường.
Str.title() – chuyển kí tự đầu mỗi từ của xâu thành chữ in hoa, các kí tự khác chuyển về chữ thường.
- Hàm được định nghĩa có dạng Tach_tu(Str, c). Đầu tiên xâu Str cần được tách từ bằng lệnh split(). Sau đó danh sách kết quả sẽ được chuyển đổi chữ in hoa, in thường sử dụng một trong các lệnh trên tuỳ thuộc vào giá trị của đối số c.
Nhiệm vụ 3. Viết chương trình yêu cầu thực hiện lần lượt các việc sau, mỗi việc cần được thực hiện bởi một hàm:
1. Nhập từ bàn phím một dãy các số nguyên, mỗi số cách nhau bởi dấu cách. Chuyển các số này vào danh sách A và in danh sách A ra màn hình.
2. Trích từ danh sách A ra một danh sách B gồm các phần tử lớn hơn 0. In danh sách B ra màn hình.
3. Trích từ danh sách A ra một danh sách C gồm các phần tử nhỏ hơn 0. In danh sách C ra màn hình.
Hướng dẫn. Với mỗi việc trên được viết thành một hàm. Toàn bộ chương trình có thể như sau:
1. Viết hàm với đầu vào, đầu ra như sau:
- Đầu vào là danh sách sList, các phần tử là xâu kí tự.
- Đầu ra là danh sách cList, các phần tử là kí tự đầu tiên của các xâu kí tự tương ứng trong danh sách sList.
2. Viết hàm Tach_day() với đầu vào là danh sách A đầu ra là hai danh sách B, C được mô tả như sau:
- Danh sách B thu được từ A bằng cách lấy ra các phần tử có chỉ số chẵn.
- Danh sách B thu được từ A bằng cách lấy ra các phần tử có chỉ số lẻ.
1.
2.
1. Phạm vi của biến khai báo trong hàm
2. Phạm vi của biến khai báo ngoài hàm
Thực hành:
Nhiệm vụ 1
Nhiệm vụ 2
Nhiệm vụ 3
Luyện tập
1. Làm phần VẬN DỤNG (SGK trang 140)
2. Xem trước bài 29 (SGK trang 141)
Nhận biết lỗi chương trình
Các em làm 10 câu hỏi trắc nghiệm Online để củng cố bài.
1. Đăng nhập vào trang thaycai.net
2. Nháy chuột vào Học Online
3. Nháy chuột vào 2. Ôn bài vui nhộn tin học 10 – sách Kết nối tri thức
4. Nháy chuột vào 28. Trắc nghiệm: Bài 28-Phạm vi của biến.