Cách sử dụng các biến trong Python 3
Biến là một khái niệm lập trình quan trọng cần nắm vững. Về cơ bản, chúng là các ký hiệu đại diện cho giá trị bạn đang sử dụng trong một chương trình.Hướng dẫn này sẽ bao gồm một số khái niệm cơ bản về biến và cách sử dụng chúng tốt nhất trong các chương trình Python 3 mà bạn tạo.
Hiểu các biến
Về mặt kỹ thuật, một biến đang chỉ định vị trí lưu trữ cho một giá trị được gắn với tên hoặc mã định danh tượng trưng. Tên biến được sử dụng để tham chiếu giá trị được lưu trữ đó trong chương trình máy tính.
Bạn có thể coi một biến như một nhãn có tên trên đó, bạn gắn vào một giá trị:
Giả sử ta có một số nguyên, 103204934813
và ta muốn lưu trữ nó trong một biến thay vì liên tục nhập lại số dài nhiều lần. Thay vào đó, hãy sử dụng một cái gì đó dễ nhớ như biến my_int
:
my_int = 103204934813
Nếu ta nghĩ về nó giống như một nhãn được gắn với giá trị, nó sẽ trông giống như sau:
Nhãn có tên biến my_int
được viết trên đó và được gắn với giá trị số nguyên 103204934813
.
Cụm từ my_int = 103204934813
là một câu lệnh gán , bao gồm một số phần:
- tên biến (
my_int
) - toán tử gán , còn gọi là dấu bằng (
=
) - giá trị đang được gắn với tên biến (
103204934813
)
Cùng với nhau, ba phần đó tạo thành câu lệnh đặt biến my_int
bằng giá trị của số nguyên 103204934813
.
Ngay sau khi ta đặt một biến bằng một giá trị, ta khởi tạo hoặc tạo biến đó. Khi ta đã làm điều đó, ta được cài đặt để sử dụng biến thay vì giá trị. Trong Python, các biến không cần khai báo rõ ràng trước khi sử dụng như một số ngôn ngữ lập trình; bạn có thể bắt đầu sử dụng biến ngay lập tức.
Ngay sau khi ta đặt my_int
bằng giá trị của 103204934813
, ta có thể sử dụng my_int
thay cho số nguyên, vì vậy hãy in nó ra:
print(my_int)
Output103204934813
Sử dụng các biến, ta có thể làm toán nhanh chóng và dễ dàng. Với my_int = 1040
, hãy trừ giá trị số nguyên 813:
print(my_int - 813)
Output103204934000
Trong ví dụ này, Python thực hiện phép toán cho ta , trừ 813 từ biến my_int
để trả về tổng 103204934000
.
Nói về toán học, các biến có thể được đặt bằng kết quả của một phương trình toán học. Hãy cộng hai số với nhau và lưu giá trị của tổng vào biến x
:
x = 76 + 145
Ví dụ trên có thể trông giống như một cái gì đó bạn đã quen thuộc: đại số. Trong đại số, các chữ cái và các ký hiệu khác được sử dụng để biểu thị số và đại lượng trong các công thức và phương trình, giống như cách các biến là tên ký hiệu biểu thị giá trị của kiểu dữ liệu. Để có cú pháp Python chính xác, bạn cần đảm bảo biến của bạn nằm ở bên trái của bất kỳ phương trình nào.
Hãy tiếp tục và in x
:
print(x)
Output221
Python trả về giá trị 221
vì biến x
được đặt bằng tổng của 76
và 145
.
Các biến có thể đại diện cho bất kỳ kiểu dữ liệu nào, không chỉ số nguyên:
my_string = 'Hello, World!' my_flt = 45.06 my_bool = 5 > 9 #A Boolean value will return either True or False my_list = ['item_1', 'item_2', 'item_3', 'item_4'] my_tuple = ('one', 'two', 'three') my_dict = {'letter': 'g', 'number': 'seven', 'symbol': '&'}
Nếu bạn in bất kỳ biến nào ở trên, Python sẽ trả về biến đó tương đương với. Ví dụ: hãy làm việc với câu lệnh gán cho kiểu dữ liệu danh sách ở trên:
my_list = ['item_1', 'item_2', 'item_3', 'item_4'] print(my_list)
Output['item_1', 'item_2', 'item_3', 'item_4']
Ta đã chuyển giá trị danh sách của ['item_1', 'item_2', 'item_3', 'item_4']
vào biến my_list
, sau đó sử dụng hàm print()
để in ra giá trị đó bằng cách gọi my_list
.
Các biến hoạt động bằng cách tạo ra một vùng bộ nhớ nhỏ trong máy tính của bạn để chấp nhận các giá trị được chỉ định sau đó được liên kết với không gian đó.
Đặt tên biến: Luật và Kiểu
Việc đặt tên cho các biến khá linh hoạt, nhưng bạn cần lưu ý một số luật :
- Tên biến chỉ được là một từ (không có khoảng trắng)
- Tên biến chỉ được tạo thành từ các chữ cái, số và dấu gạch dưới (
_
) - Tên biến không được bắt đầu bằng số
Tuân theo các luật ở trên, hãy xem xét cả tên biến hợp lệ và không hợp lệ:
Có hiệu lực | không hợp lệ | Tại sao không hợp lệ |
---|---|---|
my_int | my-int | Dấu gạch nối không được phép |
int4 | 4int | Không thể bắt đầu bằng một số |
MY_INT | $ MY_INT | Không thể sử dụng các ký hiệu ngoài _ |
another_int | int khác | Không được nhiều hơn một từ |
Một điều nữa cần lưu ý khi đặt tên biến, đó là chúng có phân biệt chữ hoa chữ thường, nghĩa là my_int
, MY_INT
, My_Int
và mY_iNt
là tất cả các biến hoàn toàn khác nhau. Bạn nên tránh sử dụng các tên biến tương tự trong một chương trình đảm bảo rằng cả bạn và các cộng tác viên hiện tại và tương lai của bạn đều có thể giữ các biến của bạn ổn định.
Cuối cùng là một số lưu ý về phong cách. Nói một cách thông thường, khi đặt tên cho các biến, thông thường sẽ bắt đầu chúng bằng một chữ cái thường và sử dụng dấu gạch dưới khi tách các từ. Bắt đầu bằng một chữ cái viết hoa không phải là không hợp lệ và một số người có thể thích camelCase hoặc kết hợp các chữ cái viết hoa và viết thường khi viết các biến của họ, nhưng đây là những lựa chọn ít thông thường hơn.
Phong cách thông thường | Phong cách độc đáo | Tại sao không bình thường |
---|---|---|
my_int | myInt | camelCase không thông thường |
int4 | Int4 | Chữ hoa đầu tiên không theo quy ước |
my_first_string | myFirstString | camelCase không thông thường |
Lựa chọn phong cách quan trọng nhất bạn có thể thực hiện là phải nhất quán. Nếu bạn bắt đầu làm việc trên một dự án hiện có đang sử dụng camelCase cho các tên biến của nó, thì tốt nhất bạn nên tiếp tục sử dụng kiểu hiện có.
PEP 8 là hướng dẫn chính thức về kiểu mã Python và nó giải quyết nhiều câu hỏi về kiểu cách mà bạn có thể có về Python. Nói chung, tính dễ đọc và tính nhất quán được ưu tiên hơn các mối quan tâm về phong cách khác.
Chỉ định lại các biến
Như hàm ý của biến từ, các biến Python có thể dễ dàng thay đổi. Điều này nghĩa là bạn có thể kết nối một giá trị khác với một biến được gán trước đó rất dễ dàng thông qua việc gán lại đơn giản.
Có thể gán lại là hữu ích vì trong suốt quá trình của một chương trình, bạn có thể cần phải chấp nhận các giá trị do user tạo thành các biến đã được khởi tạo hoặc có thể phải thay đổi việc gán thành một thứ mà bạn đã xác định trước đó.
Biết rằng bạn có thể chỉ định lại một biến một cách dễ dàng và dễ dàng cũng có thể hữu ích trong những trường hợp mà bạn có thể đang làm việc trên một chương trình lớn do người khác bắt đầu và bạn chưa rõ những gì đã được xác định.
Trước tiên hãy gán x
dưới dạng số nguyên, sau đó gán lại dưới dạng chuỗi :
#Assign x to be an integer x = 76 print(x) #Reassign x to be a string x = "Sammy" print(x)
Output76 Sammy
Ví dụ trên cho thấy rằng trước tiên ta có thể gán biến x
và gán nó với giá trị là một số nguyên, sau đó gán lại biến x
gán nó lần này với giá trị là một chuỗi.
Nếu ta viết lại chương trình theo cách này:
x = 76 x = "Sammy" print(x)
Ta sẽ chỉ nhận giá trị được gán thứ hai làm kết quả vì đó là lần gán mới nhất :
OutputSammy
Việc gán lại các biến có thể hữu ích trong một số trường hợp, nhưng bạn cần biết về khả năng đọc mã của bạn và làm việc để làm cho chương trình của bạn rõ ràng nhất có thể.
Nhiều nhiệm vụ
Với Python, bạn có thể gán một giá trị duy nhất cho nhiều biến cùng một lúc. Điều này cho phép bạn khởi tạo một số biến cùng một lúc, bạn có thể tự mình gán lại sau này trong chương trình hoặc thông qua đầu vào của user .
Thông qua nhiều phép gán, bạn có thể đặt các biến x
, y
và z
thành giá trị của số nguyên 0
:
x = y = z = 0 print(x) print(y) print(z)
Output0 0 0
Trong ví dụ này, cả ba biến ( x
, y
và z
) đều được gán cho cùng một vị trí bộ nhớ. Chúng đều bằng giá trị của 0.
Python cũng cho phép bạn gán một số giá trị cho một số biến trong cùng một dòng. Mỗi giá trị này có thể thuộc một kiểu dữ liệu khác nhau:
j, k, l = "shark", 2.05, 15 print(j) print(k) print(l)
Outputshark 2.05 15
Trong ví dụ trên, biến j
được gán cho chuỗi "shark"
, biến k
được gán cho float 2.05
và biến l
được gán cho số nguyên 15
.
Cách tiếp cận này để gán nhiều biến cho nhiều giá trị trong một dòng có thể giữ cho các dòng mã của bạn không hoạt động, nhưng hãy đảm bảo bạn không ảnh hưởng đến khả năng đọc đối với ít dòng mã hơn.
Biến local và toàn cục
Khi sử dụng các biến trong một chương trình, điều quan trọng là phải ghi nhớ phạm vi của biến . Phạm vi của một biến đề cập đến những nơi cụ thể mà nó có thể truy cập được trong mã của một chương trình nhất định. Điều này nghĩa là không phải tất cả các biến đều có thể truy cập được từ tất cả các phần của một chương trình nhất định - một số biến sẽ là toàn cục và một số sẽ là local .
Các biến toàn cục tồn tại bên ngoài các hàm . Các biến local tồn tại trong các hàm.
Ta hãy xem xét các biến local và toàn cục đang hoạt động:
#Create a global variable, outside of a function glb_var = "global" #Define a function def var_function(): lcl_var = "local" #Create a local variable, inside function print(lcl_var) #Call function to print local variable var_function() #Print global variable outside function print(glb_var)
Outputlocal global
Chương trình trên gán biến toàn cục glb_var
bên ngoài bất kỳ hàm nào, sau đó định nghĩa hàm var_function()
. Bên trong hàm, một biến local gọi là lcl_var
được gán và sau đó được in ra. Chương trình kết thúc bằng cách gọi var_function()
và sau đó in glb_var
.
Vì glb_var
là một biến toàn cục, ta có thể tham chiếu đến nó trong var_function()
. Hãy sửa đổi chương trình nhỏ ở trên để làm điều đó:
glb_var = "global" def var_function(): lcl_var = "local" print(lcl_var) print(glb_var) #Print glb_var within function var_function() print(glb_var)
Outputlocal global global
Bây giờ ta có biến toàn cục glb_var
được in ra hai lần, bởi vì nó được in bởi cả hàm và bên ngoài hàm.
Điều gì sẽ xảy ra nếu ta cố gắng gọi biến local bên ngoài hàm?
glb_var = "global" def var_function(): lcl_var = "local" print(lcl_var) print(lcl_var)
OutputNameError: name 'lcl_var' is not defined
Ta không thể sử dụng một biến local bên ngoài hàm mà nó được gán. Nếu ta cố gắng làm như vậy, đổi lại ta sẽ nhận được NameError
.
Hãy xem một ví dụ khác trong đó ta sử dụng cùng một tên biến cho biến toàn cục và biến local :
num1 = 5 #Global variable def my_function(): num1 = 10 #Use the same variable name num1 num2 = 7 #Assign local variable print(num1) #Print local variable num1 print(num2) #Print local variable num2 #Call my_function() my_function() #Print global variable num1 print(num1)
Output10 7 5
Vì biến local của num1
được gán local trong một hàm, nên khi ta gọi hàm đó, ta thấy num1
bằng giá trị local của 10
. Khi ta in ra giá trị toàn cục của num1
sau khi gọi my_function()
, ta thấy rằng biến toàn cục num1
vẫn bằng giá trị của 5
.
Có thể gán các biến toàn cục trong một hàm bằng cách sử dụng câu lệnh global
của Python:
def new_shark(): #Assign variable as global global shark shark = "Sammy" #Call new_shark() function new_shark() #Print global variable shark print(shark)
Mặc dù biến shark
đã được gán local trong hàm new_shark()
, nó có thể truy cập được bên ngoài hàm vì câu lệnh global
được sử dụng trước khi gán biến trong hàm. Do câu lệnh global
đó, khi ta gọi print(shark)
bên ngoài hàm, ta không nhận được lỗi. Mặc dù bạn có thể gán một biến toàn cục trong một hàm, nhưng có thể bạn sẽ không cần phải làm điều này thường xuyên và sẽ mắc lỗi ở phần mã có thể đọc được.
Một điều nữa cần lưu ý là nếu bạn tham chiếu một biến trong một hàm mà không gán giá trị cho nó, thì biến đó hoàn toàn là toàn cục. Để có một biến local , bạn phải gán một giá trị cho nó trong phần thân của hàm.
Khi làm việc với các biến, điều quan trọng là phải quyết định xem nên sử dụng biến toàn cục hay local thích hợp hơn. Thông thường, tốt nhất là giữ các biến local , nhưng khi bạn đang sử dụng cùng một biến trong một số hàm, bạn có thể cần khởi tạo một biến toàn cục. Nếu bạn đang làm việc với biến chỉ trong một hàm hoặc một lớp , có thể bạn cần sử dụng một biến local để thay thế.
Kết luận
Hướng dẫn này đã trình bày một số trường hợp sử dụng phổ biến của các biến trong Python 3. Các biến là một khối xây dựng quan trọng của lập trình, đóng role là biểu tượng đại diện cho giá trị của kiểu dữ liệu bạn đang sử dụng trong một chương trình.
Các tin liên quan
Cách lập chỉ mục và cắt chuỗi trong Python 32016-09-28
Cách định dạng văn bản trong Python 3
2016-09-15
Giới thiệu về cách làm việc với chuỗi trong Python 3
2016-09-15
Hiểu các kiểu dữ liệu trong Python 3
2016-09-14
Python 2 và Python 3: Cân nhắc thực tế
2016-08-17
Cách triển khai các ứng dụng web Python với Khung Micro Chai trên Ubuntu 14.04
2015-10-19
Cách triển khai các ứng dụng web Python với Framework Micro Chai trên CentOS 7
2015-10-19
Cách triển khai ứng dụng Python Web2py với uWSGI và Nginx trên Ubuntu 14.04
2015-03-17
Cách triển khai các ứng dụng Python Web2py với uWSGI và Nginx trên CentOS 7
2015-03-17
Cách xác thực một ứng dụng Python với Twitter bằng Tweepy trên Ubuntu 14.04
2015-02-04