Khai Báo Biến Và Hằng Trong Python

Biến và hằng trong Python

Biến là một phần của tất cả ngôn ngữ lập trình và riêng Python thì điều đó không ngoại lệ. Để giúp cho quý đọc giả hiểu sâu về biến và hằng trong Python, chúng tôi xin tổng hợp những thông tin quan trọng và đề cập đầy đủ nhất trong phạm vi bài biết này.

Biến trong Python là gì?

Chuyên mục này sẽ giúp bạn nắm rõ biến là gì. Từ đó, tạo tiền đề để hiểu được sự khác nhau giữa biến và hằng trong Python. Trong ngôn ngữ lập trình Python, có hai hướng định nghĩa biến. Một là xem biến như một thứ để lưu trữ dữ liệu. Những dữ liệu này thường tồn tại ở dạng số và chuỗi. Thậm chí nó có thể sử dụng nhiều lần.

Kết quả trả về của những phép toán hay tùy chỉnh chuỗi ký tự sẽ được giữ vào biến và phục vụ cho các tác vụ sau này. Ở hướng thứ hai, biến được xem như thẻ ghi địa chỉ cho dữ liệu. Những dữ liệu lưu trữ ở nhiều vị trí cụ thể trong các bộ nhớ với hàng loạt các địa chỉ đa dạng. Bên cạnh đó, người dùng sẽ hoàn toàn truy cập vào địa chỉ mà biến của dữ liệu đó đã ghi được. Nói tóm lại, biến có thể được hiểu theo một trong hai định hướng trên.

Các loại biến trong Python
Hình 1. Các loại biến trong Python

Có bao nhiêu kiểu biến trong Python?

Dữ liệu lưu trữ được ở bộ nhớ sẽ tồn tại ở nhiều kiểu không giống nhau. Nói cách khác, trong ngôn ngữ Python, kiểu dữ liệu rất đa dạng và được chuẩn hóa để phục vụ cho các tác vụ về sau.

Sẽ có kiểu dữ liệu trong ngôn ngữ Python. Chúng bao gồm: string, number, list, dictionary và tuple.

Làm sao để kiểm tra kiểu dữ liệu của biến?

Người dùng sẽ dùng nhiều thủ thuật khác nhau để kiểm tra dữ liệu đầu vào cho số hay chuỗi. Sau đây, chúng tôi xin trình bày hai phương pháp phổ biến ở thời điểm hiện tại.

Kiểm tra kiểu dữ liệu của biến
Hình 2. Kiểm tra kiểu dữ liệu của biến

1. Dùng hàm Isdigit để xem kiểu biến là string hay number

Bạn có thể viết hàm này và sử dụng nó vào dự án của mình cực kỳ đơn giản. Hãy xem ví dụ dưới đây để biết thêm chi tiết.

print ("Chương trình đăng tại freetuts.net")

num = input("Nhập số của bạn ")

print("\n")

if num.isdigit():

print("Dữ liệu nhập vào là số ")

else:

print("Dữ liệu nhập vào là chuỗi ")

Mặc dù vậy, hàm này chủ yếu làm việc với số nguyên dương. Giả định nếu số đó là số âm hay số thực thì cho ra kết quả là chuỗi. Do đó, phương pháp này cũng tồn tại nhiều mặt hạn chế.

2. Chuyển đổi thành kiểu dữ liệu float/int

Khi xét đến giải pháp này, người dùng nên dùng hai hàm như float() và int() để phục vụ cho việc ép kiểu dữ liệu. Từ đó, kết quả cho ra sẽ rõ ràng và hỗ trợ cho chúng ta biết được dữ liệu nhập là số hay chuỗi.

Mặt khác, người dùng nên kết hợp với lệnh Try-Except vì những hàm phía trên sẽ không ép được chuỗi trong tình huống chuỗi đó không tồn tại dạng số. Thông thường, quy trình kiểm tra sẽ là ép kiểu dữ liệu và cho ra kết quả là số ngược lại thì Exception xuất hiện và trả kết quả là một chuỗi.

print ("Chương trình đăng tại freetuts.net")

user_input = input("Nhập tuổi của bạn ")

print("\n")

try:

val = int(user_input)

print("Dữ liệu nhập vào là int = ", val)

except ValueError:

try:

val = float(user_input)

print("Dữ liệu nhâp vào là float = ", val)

except ValueError:

print("Dữ liệu nhập vào không phải là number")

Biến Global

Biến được khai báo ngoài hàm hay ở phạm vi toàn cục sẽ được hiểu là biến global (biến toàn cục). Biến này sẽ được truy cập từ cả hai phía gồm bên ngoài hoặc bên trong của hàm.

Ví dụ:

x = "Biến toàn cục" #khai báo biến x

#Gọi x từ trong hàm vidu()

def vidu():

print("x trong hàm vidu() :", x)

vidu()

#Gọi x ngoài hàm vidu()

print("x ngoài hàm vidu():", x)

Biến cục bộ

Biến được sử dụng và khai báo bên trong hàm hay phạm vi cục bộ sẽ được hiểu là biến cục bộ. Trên thực tế, người dùng phải khai báo nó trong hàm để tạo ra loại biến này.

Ví dụ:

def vidu():

y = "Biến cục bộ"

print(y)

vidu()

Sau đó, chạy đoạn code này sẽ thu được kết quả: biến cục bộ.

Thế nào là biến hằng?

Như các bạn đã biết, biến là đối tượng tồn tại trong chương trình. Mỗi biến sẽ sở hữu một vị trí bất kỳ ở bộ nhớ nhằm phục vụ cho việc lưu trữ dữ liệu. Trong Python, biến đặt theo quy tắc định danh.

<tên biến> = <giá trị gán cho biến>

Chúng ta không nhất thiết phải khai báo biến trước cũng như kiểu dữ liệu. Vì khi gán giá trị thì Python sẽ biết được và tự động điều chỉnh theo kiểu dữ liệu tương ứng.

Ví dụ:

number = 10

number = 1.1

print(number)

input()

Từ ví dụ trên có thể thấy được ‘number’ chính là biến được đặt tên. Giá trị của nó là 10. Tiếp đến, giá trị của nó được gán tiếp là 1.1. Sau đó, chạy chương trình và ra kết quả là: 1.1.

Chúng ta có thể rút ra được hằng được ví như loại biến đặc biệt vì giá trị nó không đổi khi bạn đã gán mặc định cho nó ở lần đầu tiên. Một lưu ý khác tên hằng được viết bằng chữ in hoa kèm theo dấu gạch dưới.

Ví dụ:

PI = 3.14 # đây là hằng

bankinh = 20 # đây là biến

Tuy vậy, dùng ký tự in hoa để đặt tên cho hằng nhằm phân biệt biến chứ không hề ảnh hưởng đến giá trị khi bạn gán cho nó. Khi thực hiện các dự án lớn, bạn phải khai báo hằng số trong một mô đun. Lúc này, mô đun được hiểu thêm là tệp độc lập có thể chứa hàm và các biến khi nhập vào tệp chính.

Biến hằng
Hình 3. Biến hằng

Cách gán biến trong Python

Khi đã gán xong giá trị cho một biến bất kỳ, hãy dùng biến đó để đại diện cho chính giá trị tương ứng ở dự án của bạn. Quá trình gán biến sẽ được làm trước hay sau khi đã khai báo biến. Mặt khác, có hai cách gán biến bao gồm gán giá trị một biến cho biến khác hoặc gán giá trị khác với giá trị khởi tạo lúc đầu cho biến.

1. Gán giá trị một biến cho biến khác

Ví dụ sau sẽ giúp bạn hiểu thêm việc gán giá trị một biến cho biến khác.

num1 = 100

num2 = num1

print("num1",num1)

#>> num1 100

print("num2",num2)

#>> num2 100

Hai biến num1 và num2 sẽ ghi và trỏ theo cùng một địa chỉ. Chính vì vậy, nó chỉ đó là vị trí của giá trị 100 được lưu trữ trong bộ nhớ. Nhưng nếu gán giá trị khác vào biến num1, lúc này biến num2 sẽ không bị ảnh hưởng gì hết.

num1 = 100

num2 = num1

num1 = 200

print("num1",num1)

#>> 200

print("num2",num2)

#>> 100

Khi người dùng gán giá trị khác cho num1, thì num1 sẽ hiểu việc ghi địa chỉ của giá trị mới nằm trong bộ nhớ. Lúc này, kết quả xuất ra màn hình là:

num1 200

num2 100

2. Gán giá trị khác với giá trị khởi tạo lúc đầu cho biến

Các bạn nên chỉ định giá trị ban đầu để gán cho chính biến này khi ở giai đoạn khai báo biến. Mặc dù vậy, vẫn có thể gán một giá trị khác cho biến đó.

price = 100

price = 200

print(price)

#>> 200

Thực tế cho thấy biến trong Python không phải là địa chỉ của vị trí lưu giá trị đó mà đúng hơn là thẻ ghi địa chỉ của chính dữ liệu đó. Những gì bạn cần làm là biến đổi dòng địa chỉ ghi trên biến. Nói cách khác, biến không đổi mà chính địa chỉ của giá trị mà nó được gán bị đổi thôi.

Hơn thế nữa, các biến sẽ có thể tự động nhận biết kiểu dữ liệu khi bạn gán giá trị vào. Chính vì vậy, người dùng hoàn toàn gán một biến với kiểu dữ liệu bất kỳ và khác với kiểu dữ liệu lúc đầu vào một biến nhé.

Ví dụ:

name = "Kiyoshi"

name = 30

print(name)

#>> 30

Như các bạn đã thấy, biến ‘name’ mang giá trị dạng chuỗi nhưng sau đó được gán giá trị dạng số. Vì trong ngôn ngữ Python, tất cả biến sẽ nhận dạng kiểu giá trị gán vào chính nó.

Cách in biến ra màn hình

Để in biến ra màn hình trong ngôn ngữ lập trình Python, chúng ta phải dùng hàm ‘print()’. Vì hàm này sẽ mang chức năng xuất dữ liệu ra màn hình khi đang chạy chương trình.

Ví dụ 1: dùng hàm ‘print()’ để in ra màn hình

print("Học Python rất thú vị.")

a = 5

# 2 object

print("a =", a)

b = a

# 3 object

print('a =', a, '= b')

Sau đó, chạy đoạn code này và được kết quả:

Học Python rất thú vị.

a = 5

a = 5 = b

Từ ví dụ trên có thể thấy được chỉ có tham số Object được dùng trong câu lệnh.

Ví dụ 2: Print () với các tham số separator và end

a = 5

print("a =", a, sep='00000', end='\n\n\n')

print("a =", a, sep='0', end='')

Tiếp đến, chạy code và thu kết quả:

a =000005

a =05

Kết luận

Như vậy sau khi đọc bài viết này, chúng tôi cam đoan bạn đã có cái nhiền tổng thể về biến và hằng trong Python. Một khi đã hiểu và nắm rõ cách khai báo biến và hằng trong Python sẽ tạo tiền đề tốt cho việc lập trình và triển khai dự án sau này. Xin chân thành cám ơn quý đọc giả đã quan tâm.

Rate this post

Để 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 *