Đặc điểm của biến (variable) và hằng (constant) trong Python

Đây là bài 5/54 bài của series môn học Ngôn ngữ lập trình Python

1. Biến (variable) trong Python

Một biến (variable) đại diện cho một vùng nhớ (trên RAM) lưu trữ dữ liệu của chương trình. Dữ liệu được lưu trữ trong vùng nhớ mà biến (variable) đại diện có thể thay đổi được. Ví dụ:

x = 20
y = 50
sum = x + y
n = 5
n = 8
Minh họa vùng nhớ của biến trong Python

Trong ví dụ trên, các vùng nhớ trên RAM sẽ lưu trữ một dữ liệu (giá trị) nào đó (20, 50, 70, 8, 5). Vùng nhớ có thể được đại diện bởi một tên biến (x, y, sum, n). Giá trị lưu trữ trong các vùng nhớ này có thể thay đổi (giá trị biến n = 5 được thay đổi thành n = 8).

Cách đặt tên biến tuân theo quy tắt đặt tên định danh (identifier) trong Python. Một biến khi được tạo ra trong Python gồm 4 đặc tínhtên biến, giá trị của biến, kiểu dữ liệu của biến và địa chỉ của biến.

Gán giá trị cho biến (variable) trong Python

Chúng ta có thể sử dụng toán tử gán (assignment operator) ‘=’ để gán giá trị cho biến. Lưu ý: Trong Python, khi tạo một biến thì phải gán giá trị cho biến đó.

n = 10
print("Bien n co kieu la ", type(n))
m = 1.1
print("Bien m co kieu la ", type(m))
website = "apple.com"
print("Bien website co kieu la ", type(website))
website = 99
print("Bien website co kieu la ", type(website))
Kết quả
Bien n co kieu la  <class 'int'>
Bien m co kieu la  <class 'float'>
Bien website co kieu la  <class 'str'>
Bien website co kieu la  <class 'int'>

Python là một ngôn ngữ tự suy luận kiểu (type-inferred language). Vì vậy, chúng ta không cần phải xác định rõ ràng kiểu dữ liệu của biến. Dựa vào giá trị được gán cho biến, Python sẽ tự động xác định biến có kiểu dữ liệu gì.

Lưu ý: Trong Python, chúng ta không thật sự gán giá trị cho biến. Thay vào đó, Python tạo một tham chiếu của đối tượng kiểu dữ liệu (int, float, str,…) cho biến. Hiểu đơn giản là Python tự động xem xét các giá trị thuộc kiểu dữ liệu nào. Rồi sẽ tạo một đối tượng có kiểu tương ứng để lưu giá trị đó. Do đó, một biến được gán thật chất là một đối tượng kiểu dữ liệu chứ không phải giá trị.

Ví dụ gán nhiều giá trị cho nhiều biến

a, b, c = 5, 3.2, "Hello"

print (a)
print (b)
print (c)

x = y = z = "same"

print (x)
print (y)
print (z)

Địa chỉ của biến trong Python

Sử dụng hàm id()

Giúp trả về địa chỉ của một đối tượng (object) cụ thể.

# get id of list
a = [1, 2, 3, 4, 5]
print(id(a))
  
# get id of a variable
a = 12
print(id(a))
  
# get id of tuple
a = (1, 2, 3, 4, 5)
print(id(a))
  
# get id of a dictionary
a = {'a' : 1, 'b' : 2}
print(id(a))
Kết quả
2817775580992
2817770586704
2817775539664
2817775483776

Sử dụng hàm addressof()

Hàm addressof() nằm trong thư viện ctypes. Thư viện này gọi là foreign function library for Python. Nó là một thư viện giúp gọi các hàm từ các thư viện khác không thuộc về Python.

# import addressof,
# c_int modules from ctypes module
from ctypes import c_int, c_float, c_wchar_p, addressof
  
# get memory address of variable
a = 44
print(addressof(c_int(a)))
b = 1.1
print(addressof(c_float(b)))
c = "gochocit.com"
print(addressof(c_wchar_p(c)))
Kết quả
2352906862344
2352906862344
2352906862344

Sử dụng hàm hex()

Hàm hex() giúp biểu diễn địa chỉ của object sang hệ cơ số 16.

# get id of list in hexadecimal representation
a = [1, 2, 3, 4, 5]
print(hex(id(a)))
  
# get id of a variable in hexadecimal representation
a = 12
print(hex(id(a)))
  
# get id of tuple in hexadecimal representation
a = (1, 2, 3, 4, 5)
print(hex(id(a)))
  
# get id of a dictionary in hexadecimal representation
a = {'a': 1,'b' : 2}
print(hex(id(a)))
Kết quả
0x273ee7b3740
0x273ee2e0250
0x273ee7a95d0
0x273ee79bb80

Lưu ý: Mỗi lần chạy chương trình thì địa chỉ lưu trữ dữ liệu có thể khác nhau. Điều này tùy thuộc vào vùng nhớ nào còn trống để cấp phát.

2. Hằng (constant) trong Python

Định nghĩa hằng số (constant): là một loại biến có giá trị không thể thay đổi. Dữ liệu được lưu trữ trong vùng nhớ mà hằng số đại diện không thể thay đổi được.

Hằng số trong Python

Trong Python, hằng số thường được khai báo và gán giá trị trong một module. Module là một file Python chứa các biến, hàm,… Các hằng số được hoa tất cả các chữ cái và dùng dấu gạch dưới _ để ngăn cách các từ. Ví dụ:

Tạo một file constant.py

PI = 3.14
GRAVITY = 9.8
WEBSITE_ADDRESS = "gochocit.com"

Tạo một file main.py

import constant

print(constant.PI)
print(constant.GRAVITY)
print(constant.WEBSITE_ADDRESS)

constant.PI = 5.9

print(constant.PI)
Kết quả
3.14
9.8
gochocit.com
5.9

Trong ví dụ trên, chúng ta tạo một file module constant.py có định nghĩa các hằng số PI, GRAVITYWEBSITE_ADDRESS. Sau đó, chúng ta tạo file main.py và import module constant.py. Cuối cùng, chúng ta in ra giá trị của các hằng số.

Lưu ý: Trong thực tế, chúng ta không sử dụng hằng số trong Python. Việc đặt tên hằng số với các chữ cái viết hoa trong Python chỉ là quy ước để dễ dàng phân biệt với các biến. Nó không có tác dụng ngăn gán lại giá trị cho hằng số. Trong ví dụ trên, chúng ta thấy hằng số PI vẫn có thể bị gán lại và giá trị bị thay đổi.

5/5 - (1 bình chọn)
Bài trước và bài sau trong môn học<< Các thành phần và cú pháp cơ bản trong chương trình PythonCác kiểu dữ liệu (data type) cơ bản trong Python >>
Chia sẻ trên mạng xã hội:

Tác giả Vinh Lê

Vinh Lê hiện đang là biên tập viên tại Góc Học IT.

Bài viết của Vinh Lê

Trả lời

Lưu ý:

1) Vui lòng bình luận bằng tiếng Việt có dấu.

2) Khuyến khích sử dụng tên thật và địa chỉ email chính xác.

3) Mọi bình luận trái quy định sẽ bị xóa bỏ.