Biến là một thành phần cốt lõi trong Python, đóng vai trò then chốt trong việc lưu trữ và quản lý dữ liệu. Việc nắm vững khái niệm và cách sử dụng biến là bước đi quan trọng để tiếp cận lập trình Python. Bài viết này mình sẽ hướng dẫn bạn cách tạo, sử dụng và thao tác với các biến trong Python một cách hiệu quả, mở đường cho việc xây dựng những ứng dụng phức tạp hơn.
Biến trong Python là gì?
Trong Python, biến (variables) được hiểu là các vùng nhớ được đặt tên, sử dụng để lưu trữ dữ liệu trong chương trình. Nói một cách khác, khi bạn khai báo một biến, bạn đang yêu cầu hệ thống cấp phát một khoảng không gian bộ nhớ để chứa giá trị của biến đó.
Dựa trên kiểu dữ liệu của một biến, trình thông dịch Python sẽ quyết định cấp phát bao nhiêu bộ nhớ và loại dữ liệu nào có thể lưu trữ tại vùng nhớ đó. Do vậy, bạn có thể lưu trữ các số nguyên, số thập phân, ký tự hoặc các kiểu dữ liệu khác vào biến bằng cách gán các kiểu dữ liệu khác nhau cho các biến trong Python.
Địa chỉ bộ nhớ
Các dữ liệu thuộc các kiểu dữ liệu khác nhau được lưu trữ trong bộ nhớ máy tính. Mỗi vị trí trong bộ nhớ máy tính đều có một địa chỉ, và địa chỉ này được biểu diễn dưới dạng số nhị phân bên trong máy tính. Bản thân dữ liệu cũng được lưu trữ ở dạng nhị phân vì máy tính hoạt động dựa trên nguyên tắc biểu diễn nhị phân.
Ví dụ: chuỗi “May” và số 18 được lưu trữ ở các vị trí bộ nhớ như hình minh họa sau:
Nếu bạn am hiểu về ngôn ngữ assembly, bạn có thể chuyển đổi các dữ liệu và địa chỉ bộ nhớ thành các chỉ thị máy. Tuy nhiên, điều này không hề dễ dàng đối với mọi người. Các trình biên dịch hoặc thông dịch ngôn ngữ như Python sẽ tự động thực hiện các thao tác chuyển đổi này. Python sẽ lưu trữ các đối tượng dữ liệu ở một vị trí bộ nhớ được chọn một cách ngẫu nhiên. Hàm id() tích hợp sẵn của Python sẽ trả về địa chỉ nơi đối tượng được lưu trữ.
Ví dụ:
>>> "May"
"May"
>>> id("May")
2167264641264
>>> 18
18
>>> id(18)
140714055169352
Một khi dữ liệu đã được lưu vào bộ nhớ, chúng ta thường xuyên phải truy cập đến nó để thực hiện các thao tác xử lý. Rõ ràng, việc lấy dữ liệu trực tiếp từ địa chỉ ID bộ nhớ sẽ rất phức tạp và mất thời gian. Các ngôn ngữ lập trình cấp cao như Python cho phép chúng ta đặt một “bí danh” hoặc “nhãn” cho vị trí bộ nhớ đó để dễ dàng tham chiếu.
Ví dụ, trong trường hợp trên, chúng ta có thể đặt nhãn cho vị trí lưu trữ chuỗi “May
” là month
, và nhãn cho vị trí lưu trữ số 18
là age
. Python sử dụng toán tử gán (=
) để liên kết một đối tượng với nhãn của nó.
>>> month = "May"
>>> age = 18
Sau khi liên kết, đối tượng dữ liệu “May
” và nhãn month
sẽ có cùng ID. Tương tự, số 18
và nhãn age
cũng có cùng ID.
>>> id(month)
2167264641264
>>> id(age)
140714055169352
Nhãn mà chúng ta gán, thực chất chính là một định danh. Thông thường, chúng ta gọi nó là một biến (variable). Trong Python, một biến là một tên mang tính biểu tượng, và là một tham chiếu hoặc một “con trỏ” đến một đối tượng dữ liệu. Nói một cách đơn giản, khi bạn gán giá trị cho một biến (ví dụ: month = "May"
), Python không trực tiếp lưu trữ chuỗi “May
” vào vùng nhớ có tên month, mà chỉ tạo một liên kết hoặc con trỏ để biến month có thể tìm thấy được dữ liệu này.
Cách tạo ra một biến trong Python
Trong Python, bạn không cần phải khai báo biến một cách tường minh để yêu cầu hệ thống tạo ra biến. Một biến trong Python sẽ được tạo ra một cách tự động khi bạn gán giá trị cho biến đó. Toán tử gán (dấu bằng =
) được dùng để gán giá trị cho các biến.
Phần nằm bên trái của toán tử =
là tên của biến, và phần nằm bên phải của toán tử =
là giá trị mà bạn muốn lưu vào biến đó.
Ví dụ về cách tạo biến trong Python
Để minh họa rõ hơn về việc tạo biến, chúng ta sẽ xem xét ví dụ dưới đây, nơi ta tạo ra các biến thuộc các kiểu dữ liệu khác nhau (số nguyên, số thực và chuỗi):
so_luong_sach = 25 # Tạo một biến kiểu số nguyên (integer)
gia_tien_mot_quyen = 35.5 # Tạo một biến kiểu số thực (float)
tieu_de_sach = "Lập trình Python" # Tạo một biến kiểu chuỗi (string)
In giá trị của biến trong Python
Sau khi khai báo một biến trong Python và gán cho biến này một giá trị, bạn có thể in giá trị đó ra màn hình bằng cách sử dụng hàm print(). Ví dụ sau đây là phần mở rộng của ví dụ trước, minh họa cách in các giá trị khác nhau của các biến khác nhau:
Ví dụ in giá trị của biến trong Python
Ví dụ sau sẽ trình bày cách in giá trị của các biến ra màn hình:
# Khai báo và gán giá trị cho các biến
so_luong_san_pham = 50 # Biến số nguyên, số lượng sản phẩm
don_gia_san_pham = 25000.5 # Biến số thực, đơn giá sản phẩm
ten_san_pham = "Bánh mì ngọt" # Biến kiểu chuỗi, tên sản phẩm
# In giá trị của các biến
print (so_luong_san_pham)
print (don_gia_san_pham)
print (ten_san_pham)
Ở đây, 50
, 25000.5
và “Bánh mì ngọt
” lần lượt là các giá trị được gán cho các biến so_luong_san_pham
, don_gia_san_pham
và ten_san_pham
. Khi thực thi đoạn mã Python này, ta sẽ thấy kết quả hiển thị trên màn hình:
50
25000.5
Bánh mì ngọt
so_luong_san_pham = 50
: Câu lệnh này tạo một biến có tên làso_luong_san_pham
(số lượng sản phẩm) và gán giá trị số nguyên 50 cho biến này.don_gia_san_pham = 25000.5
: Câu lệnh này tạo một biến làdon_gia_san_pham
(đơn giá sản phẩm) và gán giá trị số thực 25000.5 cho biến.ten_san_pham = "Bánh mì ngọt"
: Câu lệnh này khai báo biếnten_san_pham
(tên sản phẩm) và gán giá trị chuỗi “Bánh mì ngọt”.- Các câu lệnh
print()
lần lượt in ra giá trị của từng biến. print(so_luong_san_pham)
: in ra giá trị của biếnso_luong_san_pham
.print(don_gia_san_pham)
: in ra giá trị của biếndon_gia_san_pham
.print(ten_san_pham)
: in ra giá trị của biếnten_san_pham
.
Xóa biến trong Python
Trong Python, bạn có thể loại bỏ tham chiếu đến một đối tượng (object) trong bộ nhớ, hay còn gọi là xóa một biến, bằng cách sử dụng lệnh del. Cú pháp của lệnh del như sau:
del var1[,var2[,var3[....,varN]]]]
Bạn có thể sử dụng lệnh del để xóa một biến duy nhất hoặc nhiều biến cùng lúc. Ví dụ:
del bien_a # xóa một biến
del bien_x, bien_y # xóa hai biến cùng lúc
Ví dụ về cách xóa một biến trong Python
Ví dụ dưới đây sẽ minh họa cách chúng ta xóa một biến và điều gì xảy ra nếu chúng ta cố gắng sử dụng biến đã bị xóa:
# Gán giá trị cho biến counter
counter = 100
# In giá trị của counter ra màn hình
print (counter)
# Xóa biến counter
del counter
# In lại giá trị của biến counter
# (Lúc này biến counter đã bị xóa nên sẽ gây ra lỗi)
print (counter)
Khi thực thi đoạn code trên, chương trình sẽ in ra kết quả sau:
100
Traceback (most recent call last):
File "main.py", line 9, in <module>
print (counter)
NameError: name 'counter' is not defined
Giải thích code:
counter = 100
: Dòng này khai báo một biến tên làcounter
và gán cho nó giá trị 100.print(counter)
: Dòng này in giá trị hiện tại của biếncounter
(là 100) ra màn hình.del counter
: Dòng này là lệnh xóa biếncounter
. Sau lệnh này, biếncounter
không còn tồn tại trong chương trình nữa.print(counter)
: Dòng này cố gắng in giá trị của biếncounter
ra màn hình. Tuy nhiên, vìcounter
đã bị xóa, chương trình sẽ báo lỗi.
Cách xác định kiểu dữ liệu của biến
Trong Python, bạn có thể dễ dàng kiểm tra kiểu dữ liệu của một biến bằng cách sử dụng hàm type()
. Đây là một hàm được tích hợp sẵn trong Python, cho phép bạn biết được một biến đang chứa dữ liệu thuộc kiểu nào.
Ví dụ xác định kiểu dữ liệu của biến
Để hiểu rõ hơn, hãy xem ví dụ sau:
# Khai báo các biến với kiểu dữ liệu khác nhau
ho_ten = "Tèo" # Chuỗi ký tự
so_luong = 20 # Số nguyên
gia_tri = 99.9 # Số thực
# Sử dụng hàm type() để xác định kiểu dữ liệu
print(type(ho_ten))
print(type(so_luong))
print(type(gia_tri))
Khi bạn chạy đoạn mã trên, màn hình sẽ hiển thị kết quả như sau:
<class ‘str’>
<class ‘int’>
<class ‘float’>
Giải thích code:
ho_ten = "Tèo"
: Dòng này tạo ra một biếnho_ten
kiểu chuỗi (string) và gán giá trị “Tèo”.so_luong = 20
: Dòng này tạo ra một biếnso_luong
kiểu số nguyên (integer) và gán giá trị 20.gia_tri = 99.9
: Dòng này tạo ra một biếngia_tri
kiểu số thực (float) và gán giá trị 99.9.print(type(ho_ten))
,print(type(so_luong))
,print(type(gia_tri))
: Các dòng lệnh này sử dụng hàmtype()
để lấy ra kiểu dữ liệu của các biến tương ứng, và sau đó sử dụngprint()
để in kiểu dữ liệu này lên màn hình.
Ép kiểu biến trong Python
Trong Python, bạn có thể chủ động chỉ định kiểu dữ liệu của một biến bằng cách sử dụng kỹ thuật ép kiểu (casting). Quá trình này cho phép bạn chuyển đổi một giá trị từ kiểu dữ liệu này sang một kiểu dữ liệu khác.
Ví dụ
Để hiểu rõ hơn về việc ép kiểu, hãy xem xét ví dụ sau đây:
x = str(25) # x sẽ là chuỗi '25'
y = int("30") # y sẽ là số nguyên 30
z = float(5) # z sẽ là số thực 5.0
print("x =", x)
print("y =", y)
print("z =", z)
Khi thực thi đoạn mã trên, bạn sẽ nhận được kết quả như sau:
x = 25
y = 30
z = 5.0
Giải thích code:
x = str(25)
: Dòng này thực hiện ép kiểu số nguyên 25 thành một chuỗi ký tự, và gán cho biếnx
. Lúc này,x
sẽ mang giá trị là chuỗi “25” chứ không phải số nguyên.y = int("30")
: Câu lệnh này ép kiểu chuỗi “30” thành một số nguyên và gán cho biếny
. Kết quả lày
sẽ có giá trị số nguyên 30.z = float(5)
: Tại đây, số nguyên 5 được ép kiểu thành số thực và gán cho biếnz
, biếnz
sẽ nhận giá trị là số thực 5.0.- Các lệnh
print
sau đó in ra giá trị của các biếnx
,y
,z
sau khi đã được ép kiểu.
Phân biệt chữ hoa, chữ thường của biến trong Python
Một đặc điểm quan trọng của biến (variables) trong Python là tính phân biệt chữ hoa và chữ thường (case-sensitive). Điều này có nghĩa là Age và age được coi là hai biến hoàn toàn khác nhau, không có mối liên hệ gì với nhau. Bạn có thể khai báo và sử dụng cả hai biến này trong cùng một chương trình, mỗi biến sẽ có một giá trị riêng và được lưu trữ tại một vị trí bộ nhớ khác nhau. Để thấy rõ sự khác biệt, bạn hãy quan sát đoạn code sau:
age = 25
Age = 35
print("Biến age =", age)
print("Biến Age =", Age)
Kết quả khi chạy đoạn code trên là:
Biến age = 25
Biến Age = 35
Giải thích chi tiết:
age = 25
: Câu lệnh này khai báo một biến tênage
(viết thường) và gán giá trị 25 cho biến đó.Age = 35
: Câu lệnh này khai báo một biến khác, tênAge
(viết hoa chữ cái đầu) và gán giá trị 35 cho biến này.print("Biến age =", age)
: Dòng này in ra màn hình giá trị của biếnage
(25).print("Biến Age =", Age)
: Dòng này in ra màn hình giá trị của biếnAge
(35).
Gán giá trị cho nhiều biến cùng lúc trong Python
Python cho phép bạn khởi tạo nhiều biến cùng một lúc trong một câu lệnh duy nhất. Thông thường, nếu muốn gán cùng một giá trị cho nhiều biến, bạn sẽ thực hiện gán riêng lẻ cho từng biến, ví dụ như sau:
a = 10
b = 10
c = 10
Tuy nhiên, với Python, bạn có thể gộp các phép gán này lại trong một câu lệnh duy nhất như sau:
a = b = c = 10
print(a, b, c) # Kết quả: 10 10 10
Ngoài ra, Python cũng hỗ trợ bạn gán nhiều giá trị khác nhau cho nhiều biến khác nhau trong một câu lệnh. Nếu như trước đây bạn viết:
a = 10
b = 20
c = 30
Thì giờ đây, bạn có thể gộp các lệnh này lại bằng cách đặt các tên biến và giá trị tương ứng của chúng cách nhau bởi dấu phẩy, theo quy tắc “tên biến bên trái, giá trị bên phải của dấu bằng (=)”:
a, b, c = 10, 20, 30
print(a, b, c) # Kết quả: 10 20 30
Một vài ví dụ khác
Hãy thử xem xét một vài ví dụ sau đây để hiểu rõ hơn cách gán giá trị cho nhiều biến trong Python:
# Ví dụ 1: Gán cùng một giá trị cho nhiều biến
x = y = z = 200
print(x) # In ra 200
print(y) # In ra 200
print(z) # In ra 200
Kết quả:
200
200
200
Trong ví dụ trên, một đối tượng số nguyên được tạo ra với giá trị là 200, sau đó các biến x, y và z đều được gán cho cùng vị trí bộ nhớ đó.
# Ví dụ 2: Gán nhiều giá trị khác nhau cho nhiều biến khác nhau
ho_ten, tuoi, nganh_hoc = "Thảo", 20, "Công nghệ thông tin"
print(ho_ten) # In ra Thảo
print(tuoi) # In ra 20
print(nganh_hoc) # In ra Công nghệ thông tin
Kết quả:
Thảo
20
Công nghệ thông tin
Trong trường hợp này, hai đối tượng số nguyên với giá trị lần lượt là 1 và 2 được gán cho các biến a và b. Ngoài ra một đối tượng chuỗi có giá trị “Zara Ali” (được thay thế thành “Thảo”, 20, “Công nghệ thông tin” ở ví dụ trên ) cũng được gán cho biến c
Quy tắc đặt tên biến trong Python
Mỗi biến trong Python nên có một tên duy nhất, ví dụ như a, b, c. Tên biến cũng có thể mang ý nghĩa gợi nhớ như mau_sac, tuoi, ten, … Việc lựa chọn tên biến phù hợp sẽ giúp code dễ đọc và dễ hiểu hơn. Tuy nhiên, khi đặt tên biến, bạn cần tuân thủ một số quy tắc sau:
- Tên biến phải bắt đầu bằng một chữ cái (từ
a
đếnz
hoặcA
đếnZ
) hoặc một dấu gạch dưới (_
). - Tên biến không được bắt đầu bằng một chữ số (
0-9
) hoặc bất kỳ ký tự đặc biệt nào như$
,(
,*
,%
,… - Tên biến chỉ được chứa các chữ cái, chữ số và dấu gạch dưới (
a-z
,A-Z
,0-9
, và_
). - Tên biến trong Python phân biệt chữ hoa chữ thường, có nghĩa
Ten
vàTEN
là hai biến khác nhau. - Bạn không được sử dụng các từ khóa dành riêng của Python để đặt tên cho biến (ví dụ:
if
,else
,for
,while
,…). - Nếu tên biến chứa nhiều từ, chúng ta nên sử dụng một trong các quy tắc đặt tên sau:
- Camel case (Lạc đà): Chữ cái đầu tiên của từ đầu tiên viết thường, nhưng chữ cái đầu tiên của mỗi từ tiếp theo viết hoa. Ví dụ:
tocDoKmMoiGio
,giaTienMoiLit
. - Pascal case (Pascal): Chữ cái đầu tiên của mỗi từ viết hoa. Ví dụ:
TocDoKmMoiGio
,GiaTienMoiLit
. - Snake case (Rắn): Sử dụng dấu gạch dưới
_
để phân tách các từ. Ví dụ:toc_do_km_moi_gio
,gia_tien_moi_lit
.
- Camel case (Lạc đà): Chữ cái đầu tiên của từ đầu tiên viết thường, nhưng chữ cái đầu tiên của mỗi từ tiếp theo viết hoa. Ví dụ:
Ví dụ về tên biến hợp lệ
Dưới đây là một số ví dụ về tên biến hợp lệ trong Python:
counter = 100
_count = 100
name1 = "Lan"
name2 = "Huệ"
Tuoi = 20
luong_nhan_vien = 15000000
print(counter)
print(_count)
print(name1)
print(name2)
print(Tuoi)
print(luong_nhan_vien)
Kết quả khi chạy đoạn code trên:
100
100
Lan
Huệ
20
15000000
Giải thích: Các tên biến trên đều tuân thủ quy tắc đã nêu: bắt đầu bằng chữ cái hoặc dấu gạch dưới, chỉ chứa chữ số, chữ cái và gạch dưới.
Ví dụ về tên biến không hợp lệ
Còn đây là các ví dụ về tên biến không hợp lệ (sẽ gây lỗi cú pháp khi chạy chương trình):
# 1counter = 100 # Bắt đầu bằng số
# $_count = 100 # Chứa ký tự đặc biệt "$"
# luong-nhan-vien = 100000 # Chứa dấu "-"
# print(1counter)
# print($_count)
# print(luong-nhan-vien)
Nếu bạn cố tình chạy các dòng code trên chương trình sẽ báo lỗi như sau:
File "main.py", line 2
1counter = 100
^
SyntaxError: invalid syntax
Giải thích: Các tên biến này vi phạm các quy tắc đặt tên biến: bắt đầu bằng số hoặc chứa ký tự đặc biệt không được phép.
Sử dụng biến để tính toán
Khi bạn đã gán một giá trị cho một biến, bạn có thể sử dụng biến đó để thực hiện các tính toán. Ví dụ, chúng ta có biến chieu_dai và chieu_rong để lưu kích thước của một hình chữ nhật. Chúng ta có thể sử dụng các biến này để tính diện tích và chu vi:
chieu_dai = 10
chieu_rong = 20
dien_tich = chieu_dai * chieu_rong
chu_vi = 2 * (chieu_dai + chieu_rong)
print("Diện tích =", dien_tich)
print("Chu vi =", chu_vi)
Kết quả khi chạy:
Diện tích = 200
Chu vi = 60
Biến cục bộ trong Python
Biến cục bộ trong Python là những biến được khai báo và sử dụng bên trong một hàm (function). Một đặc điểm quan trọng của biến cục bộ là chúng không thể truy cập hoặc sử dụng từ bên ngoài phạm vi của hàm mà nó được khai báo.
Ví dụ về biến cục bộ trong Python
Dưới đây là một ví dụ minh họa về cách biến cục bộ được sử dụng trong Python:
def tinh_tong(a, b):
ket_qua = a + b
return ket_qua
# Gọi hàm và in kết quả
print(tinh_tong(3, 7))
Khi thực thi đoạn mã trên, bạn sẽ thấy kết quả như sau:
10
Giải thích chi tiết
def tinh_tong(a, b):
: Dòng này khai báo một hàm có têntinh_tong
với hai tham số đầu vào làa
vàb
. Hàm này sẽ tính tổng của hai số này.ket_qua = a + b
: Trong hàmtinh_tong
, biếnket_qua
được khai báo và gán giá trị bằng tổng củaa
vàb
. Biếnket_qua
ở đây là một biến cục bộ.return ket_qua
: Câu lệnh này trả về giá trị của biếnket_qua
ra khỏi hàm.print(tinh_tong(3, 7))
: Câu lệnh này gọi hàmtinh_tong
với các tham số là 3 và 7, sau đó in ra kết quả mà hàm trả về.
Biến toàn cục trong Python
Trong Python, một biến được khai báo bên ngoài bất kỳ hàm (function) nào có thể được truy cập từ bên trong bất kỳ hàm nào khác, và do đó các biến này có phạm vi hoạt động trên toàn cục (global scope). Nói một cách dễ hiểu, các biến toàn cục là những biến có thể được sử dụng ở bất kỳ đâu trong chương trình.
Ví dụ về biến toàn cục
Để bạn hiểu rõ hơn, hãy xem ví dụ sau:
# Khai báo các biến toàn cục
x = 5
y = 10
def tinh_tong():
tong = x + y
return tong
# Gọi hàm và in kết quả
ket_qua = tinh_tong()
print("Tổng:", ket_qua)
Đoạn mã trên sẽ cho ra kết quả như sau:
Tổng: 15
Giải thích code:
x = 5
vày = 10
: Hai dòng này khai báo các biến toàn cục có tên x và y, và gán cho x giá trị 5, gán cho y giá trị 10.def tinh_tong():
: Dòng này bắt đầu định nghĩa một hàm có tên tinh_tong.tong = x + y
: Bên trong hàm, chúng ta tạo một biến tong, và gán cho tong tổng của hai biến x và y. Lưu ý, chúng ta sử dụng biến x, y ở đây, mà không hề khai báo ở bên trong hàm tinh_tong vì x, y là các biến toàn cục, các biến có phạm vi toàn cục thì luôn có thể được sử dụng trong bất kỳ hàm nào.return tong
: Câu lệnh này trả về kết quả biến tong sau khi tính toán trong hàm tinh_tong().ket_qua = tinh_tong()
: Chúng ta gọi hàm tinh_tong() và gán giá trị trả về vào biến ket_qua.print("Tổng:", ket_qua)
: In kết quả tổng của biến ket_qua ra màn hình.
Hằng số trong Python
Trong Python, không có khái niệm hằng số (constants) được định nghĩa một cách chính thức như trong một số ngôn ngữ lập trình khác. Tuy nhiên, bạn có thể chỉ ra rằng một biến nào đó nên được xem như hằng số bằng cách đặt tên biến đó bằng chữ in hoa toàn bộ và sử dụng dấu gạch dưới để phân tách các từ. Ví dụ, tên PI_VALUE cho thấy rằng bạn không nên thay đổi giá trị của biến này trong suốt chương trình.
Quy tắc đặt tên sử dụng toàn chữ in hoa này đôi khi được gọi là “screaming snake case” (với “screaming” thể hiện cho việc viết hoa toàn bộ và “snake” thể hiện các dấu gạch dưới).
Biến trong Python so với C/C++
Khái niệm biến (variable) hoạt động khác nhau giữa Python và C/C++. Trong C/C++, một biến là một vùng nhớ được đặt tên. Nếu bạn có a = 10 và b = 10, cả hai đều là hai vùng nhớ khác nhau. Giả sử địa chỉ bộ nhớ của chúng lần lượt là 100 và 200.
Nếu một giá trị khác được gán cho “a”, ví dụ như a = 50, thì giá trị 10 tại địa chỉ 100 sẽ bị ghi đè bởi giá trị 50.
Trong Python, một biến tham chiếu đến một đối tượng (object) chứ không tham chiếu trực tiếp đến vị trí bộ nhớ. Một đối tượng được lưu trữ trong bộ nhớ duy nhất một lần. Nhiều biến có thể tham chiếu (gắn nhãn) đến cùng một đối tượng đó.
Ví dụ, lệnh a = 50 sẽ tạo một đối tượng kiểu số nguyên mới 50 trong bộ nhớ ở một vị trí khác, và biến a sẽ tham chiếu đến đối tượng này. Còn biến b vẫn tiếp tục tham chiếu đến đối tượng số nguyên 10 đã được tạo trước đó.
Thêm vào đó, nếu bạn gán một giá trị khác cho b, ví dụ như b=20, đối tượng số nguyên 10 sẽ không còn được biến nào tham chiếu đến nữa.
Cơ chế thu gom rác (garbage collector) của Python sẽ tự động giải phóng vùng nhớ mà đối tượng không còn được tham chiếu tới.
Toán tử nhận dạng (identity operator) is của Python sẽ trả về True nếu cả hai toán hạng (operands) có cùng giá trị id()
>>> a = b = 10
>>> a is b
True
>>> id(a), id(b)
(140731955278920, 140731955278920)
Lời kết
Vậy là chúng ta đã cùng nhau khám phá chi tiết về biến trong Python, từ khái niệm cơ bản, cách tạo, in, xóa biến, cho đến việc ép kiểu, quy tắc đặt tên và phạm vi hoạt động của biến. Hy vọng qua bài viết này, bạn đã nắm vững kiến thức nền tảng và có thể tự tin áp dụng biến để giải quyết các bài toán lập trình.