Các biến trong hàm có phạm vi hoạt động ra sao? Biến bên ngoài hàm sẽ hoạt động ra sao? Cùng tìm hiểu các vấn đề này qua nội dung bài giảng của Bài 28: Phạm vi của biến trong chương trình Tin học 10 Kết nối tri thức dưới đây. Mời các em cùng tham khảo!
- 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.
- Xét chương trình dưới đây để thấy được phạm vi của biến khai báo trong hàm
- Xét ví dụ trên ta thấy:
+ Bên trong hàm func có các biến n, a, b đang hoạt động. n = 10, a và b được thay đổi
+ Biến a, b bên ngoài hàm vẫn hoạt động. Ta thấy nếu bên ngoài hàm cũng có biến a, b thì sau khi thực hiện hàm trên, biến a, b không thay đổi bên ngoài hàm
+ Khi gọi biến n thì chương trình báo lỗi vì bên ngoài hàm chưa có biến n, thì sau khi thực hiện hàm, gọi đến biến n sẽ báo lỗi.
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. |
---|
* 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ụ 1. Biến khai báo bên ngoài hàm không có tác dụng bên trong hàm
+ Xét ví dụ trên ta thấy:
. Trong chương trình chính biến t được khai báo bên ngoài hàm f() và gán giá trị 10. Khi gọi f(5), t sẽ được gán 6. Hàm trả lại giá trị 6.
. Khi thoát khỏi f(), t vẫn có giá trị 10.
⇒ Do vậy biến t không có tác dụng bên trong hàm f().
* 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.
- Ví dụ 2.
. Trong chương trình chính, biến N được khai báo và gán giá trị 10.
. Khi gọi hàm f(1,2), giá trị trả lại là biểu thức có N tham gia.
⇒ Vậy trong hàm f() được phép truy cập giá trị của biến N.
* 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ì cần khai báo lại biến này bên trong hàm với từ khoá global như ví dụ dưới đây.
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. |
---|
Bài tập 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?
- 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?
Hướng dẫn giải:
- 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).
- 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.
Bài tập 2: Chương trình sau có lỗi không? Nếu có, làm thế nào để sửa lỗi?
def f():
n = n + 1
return n
n = 15
a = f()
print(a)
Hướng dẫn giải:
Có lỗi. Có thể sữa cho hết lỗi theo nhiều cách. Ví dụ.
Cách 1. Đưa n vào hàm số khi khai báo hàm f().
def f():
n = n + 1
return n
n = 15
a = f(n)
print(a)
Cách 2. Khai báo biến n là global trong hàm f()
def f():
global n
n = n + 1
return n
n = 15
a = f()
print(a)
Qua bài học các em cần nắm được các về:
- Biết được ý nghĩa của phạm vi hoạt động của biến trong chương trình và hàm.
- Trình bày được ý nghĩa của phạm vi hoạt động của biến trong chương trình và hàm.
Các em có thể hệ thống lại nội dung kiến thức đã học được thông qua bài kiểm tra Trắc nghiệm Tin học 10 Kết nối tri thức Chủ đề 5 Bài 28 cực hay có đáp án và lời giải chi tiết.
Đâu là chương trình đúng khi hàm với đầu vào là list A, số thực x. Hàm cần trả về một list B thu được từ list A bằng cách chỉ lấy các phần tử có giá trị ≥ x.
Hãy sửa lỗi cho chương trình sau?
def f():
n = n + 1
return n
n = 15
a = f()
print(a)
Mệnh đề nào dưới đây phát biểu sai về phạm vi tác dụng của biến trong Python?
Câu 4-10: Mời các em đăng nhập xem tiếp nội dung và thi thử Online để củng cố kiến thức về bài học này nhé!
Các em có thể xem thêm phần hướng dẫn Giải bài tập Tin học 10 Kết nối tri thức Chủ đề 5 Bài 28để giúp các em nắm vững bài học và các phương pháp giải bài tập.
Khởi động trang 136 SGK Tin học 10 Kết nối tri thức - KNTT
Hoạt động 1 trang 136 SGK Tin học 10 Kết nối tri thức - KNTT
Câu hỏi mục 1 trang 137 SGK Tin học 10 Kết nối tri thức - KNTT
Hoạt động 2 trang 137 SGK Tin học 10 Kết nối tri thức - KNTT
Câu hỏi mục 2 trang 138 SGK Tin học 10 Kết nối tri thức - KNTT
Luyện tập trang 140 SGK Tin học 10 Kết nối tri thức - KNTT
Vận dụng trang 140 SGK Tin học 10 Kết nối tri thức - KNTT
Trong quá trình học tập nếu có thắc mắc hay cần trợ giúp gì thì các em hãy comment ở mục Hỏi đáp, Cộng đồng Tin học DapAnHay sẽ hỗ trợ cho các em một cách nhanh chóng!
Chúc các em học tập tốt và luôn đạt thành tích cao trong học tập!
-- Mod Tin Học 10 DapAnHay
Đâu là chương trình đúng khi hàm với đầu vào là list A, số thực x. Hàm cần trả về một list B thu được từ list A bằng cách chỉ lấy các phần tử có giá trị ≥ x.
Hãy sửa lỗi cho chương trình sau?
def f():
n = n + 1
return n
n = 15
a = f()
print(a)
Mệnh đề nào dưới đây phát biểu sai về phạm vi tác dụng của biến trong Python?
Đoạn chương trình sau có lỗi không?
m, n = 10, 4
def f(a):
k = n + m + a
return k
f(5)
Trong Python biến được khai báo và sử dụng bên trong một hàm được gọi là gì?
Kiểu tham số khả biến gồm các kiểu nào?
Kiểu tham số bất biến gồm các kiểu nào?
Cho đoạn chương trình sau:
def h(a1,b1):
s=a1-b1
return s
a,b=map(int,input().split())
t=h(a,b)
print(t)
Trong đoạn chương trình trên a1,b1 được gọi là:
Cho đoạn chương trình sau:
def h(a1,b1):
s=a1-b1
return s
a,b=map(int,input().split())
t=h(a,b)
print(t)
Trong đoạn chương trình trên s được gọi là:
Nếu biến bên ngoài hàm muốn có tác dụng bên trong hàm ta dùng từ khóa nào?
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?
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
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 không?
Quan sát các lệnh trong mục 2, tìm hiểu phạm vi có hiệu lực của biến khi khai báo bên ngoài hàm.
Giả sử hàm f(x,y) được định nghĩa 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. Viết hàm có hai tham số đầu vào là m, n. Đầu ra trả lại hai giá trị là:
- ƯCLN của m, n.
- Bội chung nhỏ nhất (BCNN) của m, n.
Gợi ý: Sử dụng công thức ƯCLN(m, n) × BCNN(m, n) = m × n.
2. Viết chương trình nhập ba số tự nhiên từ bàn phím day, month, year, các số cách nhau bởi dấu cách. Các số này biểu diễn giá trị của ngày, tháng, năm nào đó. Chương trình cần kiểm tra và in ra thông báo số liệu đã nhập vào đó có hợp lệ hay không.
Họ và tên
Tiêu đề câu hỏi
Nội dung câu hỏi
0 Bình luận
Để lại bình luận
Địa chỉ email của hạn sẽ không được công bố. Các trường bắt buộc được đánh dấu *