Techacademy sẽ giới thiệu với các bạn về BIẾN TRONG PYTHON. Một phần tuy cơ bản nhưng rất quan trọng trong lập trình và nó sẽ theo bạn mãi cho tới khi bạn còn code.
I. Trong Python Biến Là Gì
Có hai trường phái định nghĩa biến trong python như sau:
Trường phái đầu tiên coi biến trong python giống như 1 cái hộp để lưu trữ dữ liệu. Các dữ liệu này có thể là số hoặc chuỗi mà bạn có thể ưu trữ vào biến và dùng nhiều lần. Kết quả của những phép xử lý như tính toán giá trị số, chỉnh sửa chuỗi ký tự sẽ tạm thời được giữ vào biến và dùng để sử dụng cho chương trình sau này.
Trường phái thứ hai coi biến trong python giống như thẻ ghi địa chỉ của dữ liệu. Các dữ liệu được lưu giữ tại các vị trí riêng biệt trong bộ nhớ với địa chỉ khác nhau, và biến trong python là thẻ dùng để ghi địa chỉ của dữ liệu đó trong bộ nhớ. Khi dùng dữ liệu, chúng ta sẽ truy cập vào địa chỉ được ghi trên biến của dữ liệu đó.
Bạn cũng không cần quá chú ý trường phái nào đúng, chỉ cần ghi nhớ khái niệm biến trong python bằng 1 trong hai cách trên là được.
II. Các Kiểu Biến Trong Python
Dữ liệu mà được lưu trữ trong bộ nhớ có thể có nhiều kiểu khác nhau. Ví dụ, lương của công nhân đươc lưu trữ dưới dạng một giá trị số còn địa chỉ của họ được lưu trữ dưới dạng những ký tự chữ-số. Python có đa dạng kiểu dữ liệu chuẩn được dùng để xác định các hành động có thể xảy ra trên chúng và phương thức lưu trữ cho mỗi kiểu.
Python có 5 kiểu dữ liệu chuẩn là:
- Kiểu Number
- Kiểu String
- Kiểu List
- Kiểu Tuple
- Kiểu Dictionary
Ngoài kiểu Number và kiểu String mà có thể bạn đã được làm quen với các ngôn ngữ lập trình khác thì ở trong Python còn xuất hiện thêm ba kiểu dữ liệu đó là List, Tuple và Dictionary.
III. Kiểm Tra Kiểu Dữ Liệu Của Biến Trong Python
Trong Python, chúng ta có thể sử dụng nhiều cách khác nhau để kiểm tra dữ liệu input là chuỗi hay số.
Cách 1: Chuyển đổi thành int hoặc float để kiểm tra input là số hay chuỗi
Với cách này thì ta sử dụng hai hàm int() và float() để ép kiểu dữ liệu, dựa vào kết quả trả về ta sẽ biết chính xác người sử dụng nhập vào 1 chuỗi hay 1 số.
Ta phải đặt nó trong lệnh try .. except, bởi hai hàm ép kiểu trên sẽ không thể ép một chuỗi thành một số trong trường hợp giá trị của chuỗi không phải là số. Ví dụ bạn chuyển chuỗi “freetuts.net” thành số là hoàn toàn sai.
Quá trình kiểm tra như sau: Nếu ép kiểu thành công thì là số, ngược lại thì một Exception sẽ được bung ra nên nó 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")
Cách 2: Sử dụng hàm isdigit để kiểm tra là number hay string
Hàm này công dụng khá đơn giản như sau:
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 ")
Tuy nhiên hàm này chủ hoạt động với số nguyên dương. Nếu bạn nhập vào là một số thực hoặc một số âm thì nó sẽ trả về là chuỗi. Vì vậy, giải pháp tốt nhất vẫn là chọn phương án 1 nhé cả nhà.
IV. Ép Kiểu Dữ Liệu Của Biến Trong Python
Đây là thao tác tự động chuyển đổi một loại dữ liệu sang loại dữ liệu khác của Python, quá trình này không cần bất kỳ sự tham gia của lập trình viên.
Chúng ta hãy xem ví dụ dưới đây, trong đó Python chuyển đổi kiểu dữ liệu thấp hơn (số nguyên) sang kiểu dữ liệu cao hơn (float) để tránh mất dữ liệu.
num_int = 123 num_flo = 1.23 num_new = num_int + num_flo print("Kiểu dữ liệu của num_int:",type(num_int)) print("Kiểu dữ liệu của num_flo:",type(num_flo)) print("Giá trị của num_new:",num_new) print("Kiểu dữ liệu của num_new:",type(num_new))
Kết quả của chương trình này như sau:
Kiểu dữ liệu của num_int: <class 'int'> Kiểu dữ liệu của num_flo: <class 'float'> Giá trị của num_new: 124.23 Kiểu dữ liệu của num_new: <class 'float'>
Trong chương trình trên thì:
- Mình đã định nghĩa hai biến num_int và num_flo, sau đó tạo một biến num_new để lưu trữ tổng của hai biến đó.
- Tiếp theo sẽ dùng hàm type để kiểm tra kiểu dữ liệu của cả ba biến, thật bất ngờ vì num_new đã mang kiểu float vì đây là kiểu số lớn hơn kiểu int. Như vậy biến num_new đã được chuyển đổi ngầm.
Bây giờ, hãy thử thêm một chuỗi và một số nguyên và xem Python xử lý thế nào.
Ví dụ: Bổ sung kiểu dữ liệu chuỗi (cao hơn) và kiểu dữ liệu số nguyên (thấp hơn)
num_int = 123 num_str = "456" print("Kiểu dữ liệu của num_int:",type(num_int)) print("Kiểu dữ liệu của num_str:",type(num_str)) # Dòng này sẽ lỗi vì string và number không chuyển ngầm được print(num_int+num_str)
Khi chạy chương trình trên, kết quả sẽ là:
Traceback (most recent call last): File "C:\Users\gf63\IdeaProjects\LearnPython\helloworld.py", line 7, in <module> print(num_int+num_str) TypeError: unsupported operand type(s) for +: 'int' and 'str' Kiểu dữ liệu của num_int: <class 'int'> Kiểu dữ liệu của num_str: <class 'str'>
Như vậy mặc định Python không thể tự động chuyển đổi ngầm giữa string và number.
V. Biến Global Trong Python Là Gì
Trong ngôn ngữ lập trình Python, một biến được khai báo bên ngoài hàm hoặc trong phạm vi toàn cục được gọi là biến toàn cục hay biến global. Biến toàn cục có thể được truy cập từ bên trong hoặc bên ngoài hàm
Hãy xem ví dụ về cách tạo biến toàn cục trong Python.
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)
Trong ví dụ trên, ta khai báo biến x là biến toàn cục, và định nghĩa hàm vidu() để in biến x. Cuối cùng ta gọi hàm vidu() để in giá trị của biến x. Chạy code trên ta sẽ được kết quả là:
x trong hàm vidu(): Biến toàn cục x ngoài hàm vidu(): Biến toàn cục
Chuyện gì sẽ xảy ra nếu bạn thay đổi giá trị của x trong hàm?
x = 2 def vidu(): x=x*2 print(x) vidu()
Nếu chạy code này bạn sẽ nhận được thông báo lỗi:
UnboundLocalError: local variable 'x' referenced before assignment
Lỗi này xuất hiện là do Python xử lý x như một biến cục bộ và x không được định nghĩa trong vidu().
Để thay đổi biến toàn cục trong một hàm bạn sẽ phải sử dụng từ khóa global. Chúng tôi sẽ nói kỹ hơn trong bài về từ khóa global.
VI. Biến Cục Bộ Trong Python Là Gì
Biến được khai báo bên trong một hàm hoặc trong phạm vi cục bộ được gọi là biến cục bộ hay biến local.
def vidu(): y = "Biến cục bộ" vidu() print(y)
Khi chạy code trên bạn sẽ nhận được thông báo lỗi:
NameError: name 'y' is not defined
Lỗi này xuất hiện là do chúng ta đã cố truy cập vào biến cục bộ y trong phạm vi toàn cục, nhưng y chỉ làm việc trong hàm vidu() hoặc phạm vi cục bộ.
Thông thường, để tạo một biến cục bộ, chúng ta sẽ khai báo nó trong một hàm như ví dụ dưới đây:
def vidu(): y = "Biến cục bộ" print(y) vidu()
Chạy code trên ta sẽ được kết quả
Biến cục bộ
VII. Biến Static Trong Python Là Gì
Hàm staticmethod() được coi là un-Pythonic (ngôn ngữ không chính thống của Python). Trong các phiên bản mới hơn của Python, bạn nên sử dụng decorator @staticmethod để thay thế.
Cú pháp của @staticmethod là:
@staticmethod def func(args, ...)
Cú pháp của hàm staticmethod() trong Python
Hàm staticmethod() được xác định bằng cú pháp sau:
staticmethod(function)
Tham số của hàm staticmethod()
Hàm staticmethod() có một tham số duy nhất:
- Hàm: Hàm cần được chuyển thành một static method
Giá trị trả về của hàm staticmethod()
Hàm staticmethod() trả về một static method cho một hàm tham số mà bạn đưa vào.
VIII. Biến Hằng Trong Python Là Gì
Biến là một đối tượng trong chương trình. Mỗi biến sẽ có một vị trí riêng trong bộ nhớ để lưu trữ dữ liệu (giá trị) được gán. Biến trong Python được đặt theo nguyên tắc định danh
Câu lệnh gán giá trị cho biến là: <tên biến> = <giá trị gán cho biến>
Biến trong Python không cần khai báo trước, không gần khai báo kiểu dữ liệu. Khi đặt tên và gán giá trị Python tự động nhận dạng và tùy biến theo kiểu dữ liệu được gán.
Ví dụ 1:
number = 10 number = 1.1 print(number) input()
Ở ví dụ trên, biến được đặt tên là number, được gán giá trị là 10 sau đó lại được gán giá trị là 1.1. Như vậy sau sau 2 câu lệnh trên giá trị của biến number lưu sẽ là 1.1. Kết quả khi chạy chương trình là: 1.1.
Hằng là 1 loại biến đặc biệt, giá trị của hằng là không đổi trong suốt chương trình sau lần gán giá trị đầu tiên. Tên hằng được viết hoàn toàn bằng chữ hoa và dấu gạch dưới (nếu cần).
Ví dụ:
PI = 3.14 # đây là hằng bankinh = 20 # đây là biến
Trong thực tế, việc đặt tên Hằng bằng những ký tự in hoa là để phân biệt với biến chứ nó không có tác dụng ngăn cản việc gán giá trị mới cho Hằng.
Đối với các chương trình lớn, Hằng số thường được khai báo riêng trong một mô-đun. Mô-đun là một tệp riêng chứa các biến, hàm, v.v. được nhập (import) vào tệp chính.
Ví dụ:
Tạo 1 file mới với tên “hang.py” trong cùng thư mục với file “thuchanh.py”.
– Nội dung file hang.py:
PI = 3.14 GRAVITY = 9.8
– Nội dung file thuchanh.py:
import hang print(hang.PI) print(hang.GRAVITY) input()
Chạy file thuchanh.py sẽ cho kết quả là:
3.14 9.8
IX. Gán Biến Trong Python Thế Nào
Sau khi gán một giá trị cho biến trong Python, chúng ta có thể sử dụng biến để đại diện cho giá trị đó trong chương trình. Việc gán biến trong python có thể thực hiện cùng lúc hoặc sau khi bạn đã khai báo biến trong python. Bạn có thể gán một giá trị khác với giá trị khởi tạo ban đầu vào biến, hoặc gán giá trị một biến cho một biến khác. Hãy cùng học cách gán biến trong python sau bài học này.
Gán biến trong python bằng một giá trị khác giá trị khởi tạo
Khi khởi tạo và khai báo biến trong python, chúng ta cần chỉ định giá trị ban đầu để gán cho biến đó.
Tuy nhiên sau khi đã gán một giá trị cụ thể cho biến thì chúng ta vẫn có thể gán một giá trị khác cho biến đó như ví dụ sau đây:
price = 100 price = 200 print(price) #>> 200
Trong bài biến trong python là gì bạn đã biết biến trong python không phải là địa chỉ của vị trí chứa giá trị trong bộ nhớ, mà chỉ là thẻ ghi địa chỉ của dữ liệu đó mà thôi. Do đó khi gán một giá trị khác cho một biến đã xác định, chúng ta chỉ đơn giản là thay đổi dòng địa chỉ ghi trên biến mà thôi.
Do đó, bản chất biến không thay đổi, chỉ là địa chỉ của giá trị trong bộ nhớ mà nó được gán đã thay đổi mà thôi.
Lại nữa, các giá trị dùng để gán vào biến tuy có thể thuộc các dạng dữ liệu khác nhau, tuy nhiên biến trong python lại được tự động nhận diện kiểu dữ liệu khi được gán giá trị.
Do đó, bạn có thể gán một biến có kiểu dữ liệu khác với kiểu dữ liệu ban đầu vào cùng một biến như ví dụ sau:
name = "Kiyoshi" name = 30 print(name) #>> 30
Trong ví dụ trên, mặc dù biến name được khai báo với giá trị dưới dạng chuỗi, nhưng sau đó, nó vẫn có thể được gán bởi giá trị dưới dạng số. Đó là nhờ trong python, các biến sẽ được tự động nhận diện kiểu giá trị được gán vào nó.
Gán giá trị một biến cho một biến khác
Chúng ta có thể gán giá trị một biến đã được khai báo cho một biến khác, như ví dụ sau đây:
num1 = 100 num2 = num1 print("num1",num1) #>> num1 100 print("num2",num2) #>> num2 100
Trong trường hợp này, cả hai biến num1 và num2 đều cùng ghi và trỏ về một địa chỉ, đó là vị trí của giá trị 100 trong bộ nhớ.
Tuy nhiên cần lưu ý, nếu lúc này chúng ta gán một giá trị mới vào biến num1, thì giá trị của biến num2 vẫn sẽ không thay đổi.
num1 = 100 num2 = num1 num1 = 200 print("num1",num1) #>> 200 print("num2",num2) #>> 100
Nếu bạn gán một giá trị khác cho num1 thay vì lưu trữ giá trị mới ở vị trí mà num1 đang tham chiếu, num1 sẽ ghi địa chỉ của giá trị mới đó trong bộ nhớ.
Tại thời điểm này, biến num2 vẫn đang tham chiếu đến vị trí ban đầu, do đó, biến num1 tham chiếu đến vị trí có giá trị 200 còn biến num2 thì tham chiếu đến vị trí có giá trị 100.
Do đó khi in ra màn hình, giá trị của hai biến này sẽ khác nhau:
num1 200 num2 100
X. Nhập Biến Trong Python Thế Nào
Hướng dẫn cách Nhập biến trong python. Bạn sẽ học được cách nhập giá trị của biến từ bàn phím bằng hàm inpput () trong python sau bài học này.
Để nhập biến trong python, chúng ta cần sử dụng một hàm dựng sẵn là hàm inpput () trong python.
Hàm input() sẽ giúp chúng ta nhập liệu từ bàn phím và gán giá trị đó vào biến với cú pháp sau đây:
tên biến= input()
Trong đó:
- input dùng để gọi hàm. Khi hàm được gọi, một dòng nhập dữ liệu sẽ hiện ra để người dùng có thể nhập liệu từ bàn phím.
- tên biến được đặt theo Quy tắc đặt tên biến trong Python mà bạn đã học trong bài Biến trong python là gì
Sau khi người dùng có thể nhập liệu từ bàn phím, chuỗi nhập vào sẽ được gán vào tên biến dưới dạng kiểu dữ liệu string.
Bạn cũng có thể dùng cú pháp sau đây để màn hình nhập liệu trở nên đẹp hơn:
tên biến= input(">>")
Ví dụ, chúng ta có chương trình nhập tên tuổi và in ra màn hình như sau:
print("Hay nhap ten cua ban : ") name=input(">>") print("Hay nhap tuoi cua ban : ") old=input(">>") user = "\n Ten ban : " + name + "\n Tuoi ban : " +old print(user)
Hãy lưu lại chương trình trên với tên user.py và chạy trên Anaconda Prompt. Kết quả sẽ như sau:
XI. In Biến Ra Màn Hình Thế Nào Trong Python
Hàm print() trong Python có tác dụng hiển thị dữ diệu ra màn hình khi chương trình thực thi.
Cú pháp đầy đủ của print():
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
Tham số của hàm print():
- objects: đối tượng được in, có thể có nhiều đối tượng. Sẽ được chuyển đổi thành chuỗi trước khi hiển thị ra màn hình.
- sep: cách tách riêng các đối tượng, giá trị mặc định là một khoảng trắng.
- end: giá trị cuối cùng được in ra màn hình.
- file: mặc định hàm print sẽ ghi nội dung vào file sys.stdout.
- flush: giá trị mặc định giá trị là False.
Lưu ý: sep, end, file và flush đều là các tham số keyword. Nếu bạn muốn sử dụng tham số sep, bạn phải dùng như này:
print(*objects, sep = 'separator')
không được sử dụng:
print(*objects, 'separator')
Ví dụ 1: Cách print() hoạt động trong Python
print("Học Python rất thú vị.") a = 5 # 2 object print("a =", a) b = a # 3 object print('a =', a, '= b')
Chạy chương trình, kết quả trả về là:
Học Python rất thú vị. a = 5 a = 5 = b
Trong 3 câu lệnh ở ví dụ trên, chỉ có duy nhất tham số object được sử dụng trong các 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='')
Chạy chương trình, kết quả trả về là:
a =000005 a =05
XII. Quy Tắc Đặt Tên Biến Trong Python
Để đặt tên cho biến trong python, chúng ta cần tuân theo Quy tắc đặt tên biến trong Python như dưới đây:
1/ Các ký tự có thể được sử dụng để đặt tên cho biến trong python là a đến z, A đến Z, 0 đến 9, gạch dưới _, chữ hán tự , tiếng việt có dấu v.v.
2/ Không thể sử dụng các giá trị số (0 đến 9) cho ký tự đầu tiên.
3/ Có thể sử dụng gạch dưới cho ký tự đầu tiên. Tuy nhiên vì gạch dưới thường được sử dụng trong các trường hợp đặc biệt, nên tốt hơn là không sử dụng nó.
4/ Phân biệt chữ hoa chữ thường khi đặt tên cho biến trong python
5/ Không thể sử dụng các từ khóa của Python.
Chúng ta sẽ cùng tìm hiểu chi tiết về các Quy tắc đặt tên biến trong Python ở trên như sau.
Dùng ký tự alphabet, chữ số, gạch dưới để đặt tên biến trong Python
Từ Python 3 trở đi, chúng ta có thể dùng chữ hán tự và tiếng Việt có dấu để Đặt tên cho biến trong python, tuy nhiên Kiyoshi không khuyến khích bạn dùng cách này.
tên = "Kiyoshi" tuổi =30 名前 = "Kiyoshi" 年齢 = 30
Không dùng các giá trị số cho ký tự đầu tiên của biến
Chúng ta không thể sử dụng các giá trị số cho ký tự đầu tiên của biến trong python, bởi vì lỗi SyntaxError sẽ xuất hiện.
7up = 100
Lỗi SyntaxError:
File "Main.py", line 1 7up = 100 ^ SyntaxError: invalid syntax
Phân biệt chữ hoa chữ thường khi đặt tên biến trong Python
Phân biệt chữ hoa chữ thường khi Đặt tên cho biến trong python. Ví dụ hai biến trong ví dụ dưới đây là khác nhau và cho ra kết quả cũng khác nhau:
str = "Tôi yêu" STR = "Việt Nam" print(str, STR) >> Tôi yêu Việt Nam
Không dùng các từ khóa của Python để đặt tên biến trong python
Chúng ta Không thể sử dụng các từ khóa của Python để đặt tên biến trong python. Các từ khóa (keyword) là các từ chỉ dành riêng cho Python và bạn không thể dùng chúng để đặt tên biến được.
Bạn có thể kiểm tra Danh sách các từ khóa trong python bằng câu lệnh dưới đây.
import sys import keyword print ("Python version: ", sys.version_info) print ("Python keywords: ", keyword.kwlist)
Và đây là bảng các từ khóa trong python.
False await else import pass None break except in raise True class finally is return and continue for lambda try as def from nonlocal while assert del global not with async elif if or yield
Nếu bạn dùng các từ khóa trong python ở bảng trên để đặt tên biến trong Python thì lỗi SyntaxError sẽ trả về như ví dụ sau:
from = "Việt Nam"
Lỗi SyntaxError:
File "Main.py", line 1 from = "Việt Nam" ^ SyntaxError: invalid syntax
0 / 5 - (0 Đánh Giá)
thanks turitorial variable creation in python is very easy to understand
thanks turitorial variable creation in python is very easy to understand and practice