Biến trong Python

Biến trong Python

1. Biến

1.1. Biến là gì?

Biến là các vùng chứa (container) để lưu trữ các giá trị dữ liệu.

1.2. Tạo biến

Python không có lệnh nào để tạo (khai báo) một biến.

Một biến được tạo ra ngay khi bạn gán giá trị cho nó lần đầu tiên.

Ví dụ:

x = 5
y = "John"
print(x)
print(y)

Kết quả:

5
John

Python là ngôn ngữ có kiểu động (kiểu của biến được xác định khi chạy) nên một biến có thể lưu được mọi kiểu dữ liệu.

Ví dụ:

x = 4          # x có kiểu nguyên
x = "Sally"  # x giờ có kiểu chuỗi
print(x)

Kết quả:

Sally

1.3. Ép kiểu (casting)

Nếu bạn muốn chỉ định kiểu dữ liệu của một biến, bạn có thể thực hiện việc ép kiểu (casting).

Ví dụ:

x = str(3)    # x là chuỗi '3'
y = int(3)    # x là số nguyên 3
z = float(3) # x là số thực 3.0

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

Kết quả:

3
3
3.0

1.4. Lấy kiểu của một biến/giá trị

Bạn có thể nhận được kiểu của một biến/giá trị với hàm type().

Ví dụ:

x = 5
y = "John"
print(type(x))
print(type(y))

Kết quả:

<class 'int'>
<class 'str'>

1.5. Dấu nháy đơn hay dấu nháy kép

Một chuỗi có thể được tạo bằng cách sử dụng dấu nháy đơn ' (dấu nháy) hoặc dấu nháy kép " (dấu ngoặc kép).

Ví dụ:

x = "John"
print(x)
# cũng giống như
x = 'John'
print(x)

Kết quả:

John
John

1.6. Tên biến phân biệt chữ hoa, chữ thường

Trong Python, tên biến phân biệt chữ hoa chữ thường.

Ví dụ: Hai biến sau là hai biến khác nhau

a = 4
A = "Sally"
# Biến A không ghi đè biến a
print(a)
print(A)

Kết quả:

4
Sally

2. Đặt tên biến

2.1. Quy tắc đặt tên biến

Một biến có thể ngắn (như xy) hoặc mô tả hơn (như age, carname, total_volume) nhưng phải theo các quy tắc sau:

  • Tên biến phải bắt đầu bằng một chữ cái hoặc một dấu gạch dưới _ (underscore).
  • Tên biến không thể bắt đầu bằng số.
  • Tên biến chỉ có thể chứa các kí tự chữ hoặc số và dấu gạch dưới (A-z, 0-9_).
  • Tên biến phân biệt chữ hoa, chữ thường (age, AgeAGE là ba biến khác nhau).

Ví dụ: các tên biến hợp lệ

myvar = "John"
my_var = "John"
_my_var = "John"
myVar = "John"
MYVAR = "John"
myvar2 = "John"

Ví dụ: các tên biến không hợp lệ

2myvar = "John"  # bắt đầu bằng chữ số
my-var = "John"  # chứa kí tự không được phép, là dấu gạch ngang `-`
my var = "John"  # chứa kí tự không được phép, là khoảng trắng

2.2. Tên biến có nhiều từ

Các tên biến có nhiều từ nếu không theo quy tắc nào có thể gây ra khó đọc.

Có một số quy tắc mà bạn có thể theo để làm cho chúng dễ đọc hơn.

2.2.1. Quy tắc lạc đà

Mỗi từ, ngoại trừ chữ cái đầu tiên, bắt đầu bằng một chữ cái viết hoa:

myVariableName = "John"

2.2.2. Quy tắc Pascal

Mỗi từ bắt đầu bằng một chữ cái viết hoa:

MyVariableName = "John"

2.2.3. Cú pháp con rắn

Mỗi từ được phân cách bằng một kí tự gạch dưới, tất cả được viết thường:

my_variable_name = "John"

3. Gán giá trị cho biến

3.1. Gán nhiều giá trị đến nhiều biến

Python cho phép bạn gán nhiều giá trị cho nhiều biến trong một dòng.

Ví dụ:

x, y, z = "Orange", "Banana", "Cherry"
print(x)
print(y)
print(z)

Kết quả:

Orange
Banana
Cherry

Đảm bảo số lượng biến khớp với số lượng giá trị, nếu không bạn sẽ gặp lỗi.

3.2. Gán một giá trị tới nhiều biến

Và bạn có thể gán cùng một giá trị cho nhiều biến trong một dòng.

Ví dụ:

x = y = z = "Orange"
print(x)
print(y)
print(z)

Kết quả:

Orange
Orange
Orange

3.3. Giải nén một bộ sưu tập

Nếu bạn có một tập hợp các giá trị trong một bộ sưu tập như một danh sách, một tuple, v.v. Python cho phép bạn trích xuất các giá trị thành các biến. Đây được gọi là giải nén (unpacking).

Ví dụ: giải nén một danh sách

fruits = ["apple", "banana", "cherry"]
x, y, z = fruits
print(x)
print(y)
print(z)

Kết quả:

apple
banana
cherry

4. In giá trị biến

4.1. In giá trị các biến

Hàm print() thường được sử dụng để in (xuất) giá trị các biến.

Để kết hợp một chuỗi và một biến (chứa chuỗi), Python sử dụng kí tự +.

Ví dụ:

x = "awesome"
print("Python is " + x)

Kết quả:

Python is awesome

Bạn cũng có thể sử dụng kí tự + để nối một biến (chuỗi) với một biến (chuỗi) khác.

Ví dụ:

x = "Python is"
y = "awesome"
z = x + y
print(z)

Kết quả:

Python is awesome

Đối với các số, kí tự + hoạt động như một phép cộng.

Ví dụ:

x = 5
y = 10
print(x + y)

Kết quả:

15

Không như một số ngôn ngữ (chẳng hạn JavaScript), Python không cho phép kết hợp một chuỗi với một số.

Ví dụ:

x = 5
y = "John"
print(x + y)

Kết quả:

TypeError: unsupported operand type(s) for +: 'int' and 'str'

5. Biến toàn cục

5.1. Các biến toàn cục

Các biến được tạo bên ngoài mọi hàm (như trong tất cả các ví dụ trên) được gọi là các biến toàn cục (global variables).

Các biến toàn cục có thể được sử dụng ở bất cứ đâu, cả bên trong hàm và bên ngoài hàm.

Ví dụ: tạo một biến toàn cục và sử dụng nó bên trong hàm

x = "awesome"

def myfunc():
    print("Python is " + x)

myfunc()

Kết quả:

Python is awesome

Nếu bạn tạo một biến cùng tên với biến toàn cục trong hàm, thì biến này gọi là biến cục bộ (local variable) và chỉ có thể được sử dụng bên trong hàm. Biến toàn cục có cùng tên vẫn sẽ như cũ, không bị thay đổi giá trị.

Ví dụ: tạo một biến cục bộ bên trong hàm, cùng tên với biến toàn cục

x = "awesome"

def myfunc():
    x = "fantastic"
    print("Python is " + x)

myfunc()

print("Python is " + x)

Kết quả:

Python is fantastic
Python is awesome

5.2. Từ khóa global

Thông thường, khi bạn tạo một biến bên trong hàm, nó mặc định trở thành biến cục bộ và chỉ có thể sử dụng được bên trong hàm đó.

Để tạo một biến toàn cục bên trong hàm, bạn có thể sử dụng từ khóa global.

Ví dụ: nếu bạn sử dụng từ khóa global, biến này là biến toàn cục

def myfunc():
    global x
    x = "fantastic"

myfunc()

print("Python is " + x)

Kết quả:

Python is fantastic

Ngoài ra, hãy sử dụng từ khóa global nếu bạn muốn thay đổi một biến toàn cục bên trong một hàm.

Ví dụ: để thay đổi giá trị của biến toàn cục bên trong một hàm, hãy tham chiếu đến biến này bằng cách sử dụng từ khóa global.

x = "awesome"

def myfunc():
    global x
    x = "fantastic"

myfunc()

print("Python is " + x)

Kết quả:

Python is fantastic