Tin học 10 – Bài 28. Phạm vi của biến

1. Phạm vi của biến khai báo trong hàm

Biến được khai báo bên trong một hàm chỉ có tác dụng trong phạm vi hàm đó. Chương trình chính không thể sử dụng biến này.

def func(a, b):
    n = 10
    a = a * 2
    b = a + b
    return a + b + n

a, b = 1, 2
print(func(a, b))  # Kết quả: 16
print(a, b)        # Kết quả: (1, 2)
print(n)           # Báo lỗi NameError vì n không tồn tại ngoài hàm.

Lưu ý:

  • Các biến khai báo bên trong hàm không ảnh hưởng đến các biến cùng tên bên ngoài hàm.
  • Nếu gọi một biến chưa được định nghĩa bên ngoài hàm, chương trình sẽ báo lỗi.

2. Phạm vi của biến khai báo ngoài hàm

Bên trong hàm có thể truy cập và sử dụng giá trị của biến đã khai báo trước đó ở bên ngoài hàm

Ví dụ 1:

N = 10

def f(a, b):
    return a + b + N

print(f(1, 2))  # Kết quả: 13

Biến khai báo bên ngoài hàm có thể được sử dụng bên trong hàm nhưng không thể thay đổi giá trị của nó trừ khi sử dụng từ khóa global.

Ví dụ 2:

t = 10

def f(n):
    global t
    t = 2 * n + 1
    return t

print(f(1))  # Kết quả: 3
print(t)     # Kết quả: 3

Lưu ý:

  • Nếu không sử dụng từ khóa global, giá trị của biến khai báo bên ngoài sẽ không bị thay đổi bởi các thao tác bên trong hàm.

Thực hành

Nhiệm vụ 1: Viết hàm lọc danh sách các phần tử lớn hơn hoặc bằng giá trị x

def Select(A, x):
    B = []  # Khởi tạo danh sách rỗng để lưu kết quả
    
    for k in range(len(A)):  
        if A[k] >= x:       # Kiểm tra nếu phần tử lớn hơn hoặc bằng x
            B.append(A[k])  # Thêm phần tử vào danh sách kết quả B
    
    return B                # Trả về danh sách kết quả

# Ví dụ minh họa:
A = [1, 5, 3, 7, 2]
x = 4
print(Select(A, x))         # Kết quả: [5, 7]

Nhiệm vụ 2: Viết hàm chuyển đổi chữ hoa/thường/xuất hiện chữ hoa đầu mỗi từ

def Tach_tu(Str, c):
    A = Str.split()          # Tách chuỗi thành danh sách các từ
    
    for k in range(len(A)):  
        if c == 0:
            A[k] = A[k].upper()   # Chuyển thành chữ in hoa
        elif c == 1:
            A[k] = A[k].lower()   # Chuyển thành chữ in thường
        elif c == 2:
            A[k] = A[k].title()   # Chuyển chữ cái đầu mỗi từ thành in hoa
    
    return A

# Ví dụ minh họa:
Str = "hello world python"
print(Tach_tu(Str, c=0))     # Kết quả: ['HELLO', 'WORLD', 'PYTHON']
print(Tach_tu(Str, c=1))     # Kết quả: ['hello', 'world', 'python']
print(Tach_tu(Str, c=2))     # Kết quả: ['Hello', 'World', 'Python']

Nhiệm vụ 3: Xử lý danh sách số nguyên nhập từ bàn phím

Chương trình thực hiện lần lượt các bước sau:

  1. Nhập danh sách số nguyên.
  2. Lọc ra danh sách các số dương.
  3. Lọc ra danh sách các số âm.
def Nhap_Dulieu():
    s = input("Nhập các số nguyên cách nhau bởi dấu cách: ")
    A = list(map(int, s.split()))   # Chuyển chuỗi nhập vào thành danh sách số nguyên
    return A

def getB(A):
    B = [x for x in A if x > 0]     # Lọc ra các số lớn hơn 0
    return B

def getC(A):
    C = [x for x in A if x < 0]     # Lọc ra các số nhỏ hơn 0
    return C

# Chương trình chính:
A = Nhap_Dulieu()
print("Danh sách A:", A)
print("Danh sách B:", getB(A))
print("Danh sách C:", getC(A))

Luyện tập

Vận dụng

Câu hỏi trắc nghiệm

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *