Khái niệm biến và phạm vi biến trong ngôn ngữ lập trình Python

3
(115 votes)

Python là một ngôn ngữ lập trình phổ biến được sử dụng rộng rãi trong nhiều lĩnh vực khác nhau, từ phát triển web đến khoa học dữ liệu. Hiểu rõ về các khái niệm cơ bản như biến và phạm vi biến là điều cần thiết để viết mã Python hiệu quả và dễ đọc. Bài viết này sẽ khám phá khái niệm biến và phạm vi biến trong Python, cung cấp cho bạn kiến thức nền tảng để bắt đầu hành trình lập trình Python của mình.

Biến là một trong những khái niệm cơ bản nhất trong lập trình. Nói một cách đơn giản, biến là một tên được gán cho một giá trị cụ thể trong bộ nhớ máy tính. Khi bạn gán một giá trị cho một biến, Python sẽ lưu trữ giá trị đó trong bộ nhớ và liên kết nó với tên biến đó. Sau này, bạn có thể truy cập và sử dụng giá trị đó bằng cách sử dụng tên biến.

Khái niệm biến trong Python

Trong Python, bạn có thể khai báo một biến bằng cách gán một giá trị cho nó. Ví dụ:

```python

name = "John Doe"

age = 30

```

Trong ví dụ trên, chúng ta đã khai báo hai biến: `name` và `age`. Biến `name` được gán giá trị là chuỗi "John Doe", trong khi biến `age` được gán giá trị là số nguyên 30.

Python là một ngôn ngữ lập trình động, có nghĩa là bạn không cần phải khai báo kiểu dữ liệu của biến trước khi sử dụng nó. Python sẽ tự động xác định kiểu dữ liệu của biến dựa trên giá trị được gán cho nó.

Phạm vi biến trong Python

Phạm vi biến đề cập đến vùng mã nơi một biến có thể được truy cập. Trong Python, phạm vi biến được xác định bởi nơi biến được khai báo. Có ba loại phạm vi biến chính trong Python:

* Phạm vi toàn cục (Global scope): Biến được khai báo bên ngoài bất kỳ hàm nào được coi là biến toàn cục. Biến toàn cục có thể được truy cập từ bất kỳ đâu trong chương trình.

* Phạm vi cục bộ (Local scope): Biến được khai báo bên trong một hàm được coi là biến cục bộ. Biến cục bộ chỉ có thể được truy cập từ bên trong hàm nơi nó được khai báo.

* Phạm vi đóng gói (Enclosing scope): Biến được khai báo bên trong một hàm lồng nhau được coi là biến đóng gói. Biến đóng gói có thể được truy cập từ hàm lồng nhau bên trong và từ hàm bên ngoài nơi nó được khai báo.

Ví dụ về phạm vi biến

```python

# Biến toàn cục

global_var = 10

def my_function():

# Biến cục bộ

local_var = 20

print(f"Giá trị của biến cục bộ: {local_var}")

print(f"Giá trị của biến toàn cục: {global_var}")

my_function()

print(f"Giá trị của biến toàn cục: {global_var}")

```

Trong ví dụ trên, `global_var` là một biến toàn cục, trong khi `local_var` là một biến cục bộ. Biến `local_var` chỉ có thể được truy cập từ bên trong hàm `my_function()`, trong khi biến `global_var` có thể được truy cập từ bất kỳ đâu trong chương trình.

Quy tắc LEGB

Python sử dụng quy tắc LEGB để xác định phạm vi của một biến. LEGB là viết tắt của:

* Local: Phạm vi cục bộ của hàm hiện tại.

* Enclosing function locals: Phạm vi cục bộ của hàm lồng nhau bên ngoài.

* Global: Phạm vi toàn cục của mô-đun hiện tại.

* Built-in: Phạm vi của các hàm tích hợp sẵn của Python.

Khi bạn sử dụng một biến, Python sẽ tìm kiếm biến đó theo thứ tự LEGB. Nếu biến được tìm thấy trong phạm vi cục bộ, Python sẽ sử dụng biến đó. Nếu không tìm thấy trong phạm vi cục bộ, Python sẽ tìm kiếm trong phạm vi đóng gói, sau đó là phạm vi toàn cục và cuối cùng là phạm vi tích hợp sẵn.

Kết luận

Hiểu rõ về khái niệm biến và phạm vi biến là điều cần thiết để viết mã Python hiệu quả và dễ đọc. Biến là một trong những khái niệm cơ bản nhất trong lập trình, cho phép bạn lưu trữ và truy cập dữ liệu trong chương trình của mình. Phạm vi biến xác định vùng mã nơi một biến có thể được truy cập, giúp bạn tránh xung đột tên biến và đảm bảo mã của bạn hoạt động chính xác. Bằng cách sử dụng quy tắc LEGB, bạn có thể hiểu rõ cách Python tìm kiếm biến trong các phạm vi khác nhau.