BÀI 28: PHẠM VI CỦA BIẾN
A. Yêu Cầu Cần Đạt
Hiểu và 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.
B. Nội Dung Bài Học
1. Phạm Vi Của Biến Khai Báo Trong 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 thể truy cập được.
Ví dụ:
>>> def func(a, b):
n = 10
a = a * 2
b = a + b
return a + b + n
>>> a = 1
>>> b = 2
>>> func(a, b) # Kết quả: 16
>>> a, b # Biến bên ngoài không bị thay đổi
(1,2)
>>> n # Lỗi vì n chỉ tồn tại trong hàm func
Traceback (most recent call last):
NameError: name 'n' is not defined
- Như vậy, trong Python tất cả các biến khai báo bên trong hàm đều có tính cục bộ, 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 tác động bên trong hàm
>>> def f(n):
t = n + 1
return t
>>> t = 10
>>> f(5) # Kết quả: 6
>>> t # Biến t bên ngoài không thay đổi
10
Ví dụ 2: Hàm có thể truy cập biến khai báo bên ngoài
>>> def f(a, b):
return a + b + N
>>> N = 10
>>> f(1, 2) # Kết quả: 13
Lưu ý:
- Muốn thay đổi biến bên ngoài hàm, ta dùng từ khoá
global
>>> def f(n):
global t
t = 2 * n + 1
return t
>>> t = 10
>>> f(1) # Kết quả: 3
>>> t # Biến t bên ngoài đã thay đổi
3
Tóm lại:
- Biến khai báo bên trong hàm chỉ có tác dụng trong hàm.
- Biến bên ngoài hàm có thể được truy cập trong hàm, nhưng không thay đổi được trừ khi dùng
global
.
C. Củng Cố - VẬn Dụng
Thực Hành
Nhiệm vụ 1: Lọc các phần tử lớn hơn x trong danh sách A
def Select(A, x):
B = []
for k in A:
if k >= x:
B.append(k)
return B
Nhiệm vụ 2: Tách từ trong xâu và chuyển đổi kiểu chữ
def Tach_tu(Str, c):
words = Str.split()
if c == 0:
return [word.upper() for word in words]
elif c == 1:
return [word.lower() for word in words]
elif c == 2:
return [word.title() for word in words]
return words
Nhiệm vụ 3: Chương trình thao tác danh sách
def nhap_danh_sach():
A = list(map(int, input("Nhập danh sách các số: ").split()))
return A
def loc_duong(A):
return [x for x in A if x > 0]
def loc_am(A):
return [x for x in A if x < 0]
# Chương trình chính
A = nhap_danh_sach()
print("Danh sách A:", A)
print("Danh sách số dương:", loc_duong(A))
print("Danh sách số âm:", loc_am(A))
D. TRẮC NGHIỆM
Chủ đề:
Tin Học 10