1.1. Biến là gì?
Trong Python, biến là tên được gán cho các đối tượng, được sử dụng để lưu trữ dữ liệu, thay đổi và truy cập chúng trong chương trình. Python là ngôn ngữ được định kiểu động. Điều này có nghĩa là kiểu của biến được xác định tại thời điểm gán giá trị cho nó, và kiểu đó có thể thay đổi trong quá trình thực hiện chương trình.
Các khía cạnh chính của biến trong Python:
1. Khai báo và gán giá trị:
Trong Python, biến
không yêu cầu khai báo để
dự trù bộ nhớ. Gán giá trị cho biến
tự động dự trù bộ nhớ và xác định kiểu của chúng. Ví dụ, x = 10
tạo ra một biến có tên x
và gán giá trị 10
cho nó.
2. Đặt tên:
Tên biến phải có tính mô tả và tuân thủ các quy tắc của Python về tên định danh, ví dụ như không bắt đầu bằng số và không chứa các ký tự đặc biệt, ngoại trừ dấu gạch dưới.
Ví dụ:
name1 = "Alex" | name1 — tên tốt. |
---|---|
user_age = 5 | user_age — tên tốt. |
%city% = 7 | %city% — tên xấu, chứa ký tự đặc biệt. |
1234qwerty = 1234 | Tên xấu — bắt đầu bằng số. |
3. Định kiểu động:
Như đã đề cập, kiểu của biến trong Python được xác định trong quá trình thực hiện chương trình,
điều này làm cho ngôn ngữ trở nên linh hoạt và dễ phát triển. Ví dụ thay đổi
kiểu trong quá trình chương trình: mã x = 10
gán cho x
giá trị
số, và sau đó mã x = "hello"
gán cho x
giá trị chuỗi.
Ví dụ:
age = "Alexander" |
Biến age chứa giá trị — chuỗi văn bản
«Alexander»
|
---|---|
age = 35 | Biến age chứa giá trị — số 35 |
age = "London" | Biến age chứa giá trị — chuỗi văn bản «London» |
age = 3.14 | Biến age chứa giá trị — số thực 3.14 |
4. Tính chất tham chiếu của biến:
Trong Python, biến là tham chiếu đến các đối tượng. Điều này có nghĩa là khi giá trị được gán cho biến, thực tế là tạo ra một tham chiếu đến đối tượng có giá trị đó. Nếu biến x
và y
chỉ ra cùng một đối tượng, bất kỳ thay đổi nào thực hiện qua x
sẽ phản ánh cả trong y
, vì cả hai biến đều tham chiếu đến cùng một đối tượng trong bộ nhớ.
5. Phạm vi:
Phạm vi của biến xác định phần của chương trình mà biến có thể truy cập. Python hỗ trợ các biến cục bộ, toàn cục và không cục bộ (trong ngữ cảnh hàm lồng nhau). Chúng ta sẽ xem xét chủ đề này chi tiết hơn, nhưng sau này. Không phải tất cả một lúc.
6. Quản lý bộ nhớ:
Python tự động quản lý bộ nhớ cho biến bằng cách sử dụng cơ chế gom rác, theo dõi và giải phóng bộ nhớ không sử dụng.
7. Tính không thay đổi của đối tượng:
Một số kiểu dữ liệu trong Python như chuỗi và tuple là không thay đổi. Điều này có nghĩa là nội dung của chúng không thể thay đổi sau khi tạo. Bất kỳ cố gắng thay đổi nào sẽ dẫn đến việc tạo một đối tượng mới.
8. Gán giá trị nhiều lần:
Trong Python, có thể thực hiện nhiều thao tác gán giá trị trong một dòng. Ví dụ:
x = 1 | |
---|---|
y = 2 | x, y, z = 1, 2, 3 |
z = 3 |
1.2. Kiểu dữ liệu
Python hỗ trợ một số kiểu dữ liệu cơ bản được sử dụng để lưu trữ và thao tác với dữ liệu trong chương trình. Bao gồm int
, str
, float
và bool
.
int (số nguyên)
Kiểu dữ liệu int
được dùng để biểu diễn số nguyên không có phần thập phân. Nó có thể lưu trữ cả giá trị dương và âm. Ví dụ,
x = 5 gán cho biến x một số nguyên
5.
str (chuỗi)
Kiểu str
được dùng để lưu trữ thông tin văn bản,
hay chuỗi. Chuỗi trong Python được đặt trong dấu ngoặc đơn hoặc kép. Ví dụ,
name = "John" gán cho biến
name chuỗi
"John". Chuỗi trong Python hỗ trợ
nhiều thao tác, như nối chuỗi và nhân bản, và còn có nhiều
phương thức để xử lý văn bản.
float (số thực)
Kiểu float
trong Python được dùng để biểu diễn số
thập phân, tức là số có chứa phần thập phân.
Những số này được viết bằng cách sử dụng dấu chấm thập phân. Ví dụ,
pi = 3.14 gán cho biến
pi giá trị số π, làm tròn đến
hai chữ số sau dấu phẩy.
bool (giá trị boolean)
Kiểu dữ liệu boolean bool
nhận một trong hai giá trị:
True (Đúng)
hoặc
False (Sai)
. Nó thường được sử dụng
để kiểm soát thực hiện các điều kiện trong các tình huống, như câu lệnh điều kiện và vòng lặp. Ví dụ, is_valid = True chỉ rằng
biến is_valid có giá trị boolean True
.
Những kiểu dữ liệu này là nền tảng cho việc xây dựng các cấu trúc dữ liệu phức tạp hơn và các thuật toán trong Python, cho phép lập trình viên quản lý dữ liệu và logic hiệu quả trong chương trình của họ.
1.3. Tên biến
Trong Python, tên biến không chỉ là cách để liên kết dữ liệu, chúng là yếu tố chính của mã, làm cho mã dễ hiểu và dễ duy trì hơn. Việc chọn đúng tên biến có thể đơn giản hóa đáng kể việc hiểu mã và sửa lỗi sau này, trong khi lựa chọn không tốt có thể dẫn đến nhầm lẫn và lỗi.
Quy tắc cơ bản để đặt tên biến trong Python:
Sử dụng tên dễ hiểu: Tên biến nên phản ánh dữ liệu mà nó chứa, để mã dễ đọc. Ví dụ, count
tốt hơn x
, nếu biến được dùng để đếm một thứ gì đó.
Tuân thủ các tiêu chuẩn phong cách: Trong Python, tiêu chuẩn phổ biến là PEP 8, khuyến nghị sử dụng chữ thường với dấu gạch dưới cho tên biến (ví dụ, my_variable
).
Tránh xung đột với từ khóa: Không sử dụng những từ mà Python đã dành riêng cho cú pháp của nó, như if
, else
, class
, return
và các từ khác. Điều này có thể dẫn đến lỗi thực thi.
Sử dụng tên ngắn cho các biến quy mô nhỏ: Đối với các biến cục bộ được sử dụng trong các khối mã nhỏ, tên ngắn như i
hoặc j
thường phù hợp và làm mã gọn hơn.
Sử dụng tên dài và mô tả cho biến toàn cục: Biến toàn cục và hằng số, được sử dụng trong nhiều phần của chương trình, nên có tên dài và mô tả hơn để mục đích của chúng rõ ràng.
Ví dụ về tên biến tốt:
user_age
thay vì age
(nếu trong ngữ cảnh có thể có nhiều độ tuổi)
total_price
thay vì total
(nó rõ ràng rằng đây là giá)
max_height
hoặc min_height
thay vì max_h
hoặc
min_h
Trường hợp đặc biệt:
Trong nhiều thuật toán, đặc biệt là toán học và khoa học, thường sử dụng biến đơn chữ cái (chẳng hạn,
x
, y
, z
cho tọa độ). Điều này là chấp nhận được khi phong cách này là tiêu chuẩn ngành và chỉ tăng cường hiểu biết mã.
Tên biến trong Python đóng vai trò quan trọng trong việc tạo ra mã hiệu quả, bền vững và dễ bảo trì. Vì vậy, đừng lười biếng và cố gắng nghĩ ra những tên tốt. Điều đó sẽ giúp đơn giản hóa quá trình debug và bảo trì mã của bạn một cách đáng kể, cũng như làm mã dễ tiếp cận hơn đối với các lập trình viên khác.
GO TO FULL VERSION