Biến, phép gán và các kiểu dữ liệu cơ sở trong Python

0/5 No hay votos

Reportar esta app

Description

Biến và phép gán là những thành phần cơ bản và thường gặp nhất trong bất kỳ ngôn ngữ lập trình nào. Trong Python, biến, phép gán và kiểu dữ liệu có nhiều điểm khác biệt với C# hay Java do Python là một ngôn ngữ định kiểu động và định kiểu yếu.

Biến, phép gán, kiểu dữ liệu trong Python


1
2
3
4
5
6
7
8
9
10
name = 'Donald Trump' # biến kiểu chuỗi
age = 40 # biến kiểu số
companies = ['Apple', 'Google', 'Microsoft'] # biến kiểu danh sách
person_tuple = ('Trump', 'USA', 40, 'President') # biến kiểu tuple
person_dict = {'Name': 'Trump', 'Age': 40, 'Job': 'US President'} # biến kiểu từ điển
print(name)
print(age)
print(companies)
print(person_tuple)
print(person_dict)

Chạy chương trình ở chế độ script bạn thu được kết quả như sau:

Nếu chế độ tương tác, bạn nhập lệnh như sau trong Python Interpreter hoặc IDLE:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
>>> name = 'Donald Trump'
>>> name
'Donald Trump'
>>> age = 40
>>> age
40
>>> companies = ['Apple', 'Google', 'Microsoft']
>>> companies
['Apple', 'Google', 'Microsoft']
>>> person_tuple = ('Trump', 'USA', 40, 'President')
>>> person_tuple
('Trump', 'USA', 40, 'President')
>>> person_dict = {'Name': 'Trump', 'Age': 40, 'Job': 'US President'}
>>> person_dict
{'Name': 'Trump', 'Age': 40, 'Job': 'US President'}
>>>

Đây là các lệnh khai báo và gán giá trị cho biến với một số kiểu dữ liệu cơ sở của Python.

Trong ví dụ trên, name, age, companies, person_tuple, person_dict là các biến, dấu = là dấu phép gán, bên tay phải dấu = là giá trị của biến.

Biến trong Python

Định nghĩa và cách hoạt động của biến trong Python có điểm khác biệt với các ngôn ngữ như C

Trong Python, biến là một tên gọi đại diện cho một giá trị trong bộ nhớ. Trong đó, giá trị có thể do bạn tự khai báo hoặc được Python tính toán từ một biểu thức.

Để dễ hình dung, biến trong Python có nét tương tự như file và shortcut trong window. Trong đó file trên ở đĩa tương tự như giá trị của biến trong bộ nhớ. Shortcut đến file tưng tự như biến trong Python

Tham khảo thêm ngay  Các kiểu dữ liệu số trong Python

Với hình dung như thế, trong Python:

  • Nhiều biến có thể “trỏ” đến cùng một giá trị trong bộ nhớ: giống như bạn có thể tạo nhiều lối tắt tới cùng một file, bạn có thể để cho nhiều biến khác nhau cùng trỏ tới một giá trị chung.
  • Một biến có thể trỏ sang các giá trị khác nhau: khi tạo ra biến bạn có thể để cho nó trỏ tới giá trị a, sau đó bạn có thể để cho nó trỏ tới giá trị b, trong đó a và b hoàn toàn khacskieeur nhua.

Như vậy biến trong Python thực tế chỉ là một tên gọi mà ta có thể sử dụng để truy xuất giá trị. Biến trong Python không trực tiếp chứa giá trị.

Biến trong Python bắt buộc phải tạo ra cùng phép gán. Giá trị của biến trong bộ nhớ được tự động thu dọn khi không sử dụng đến nhờ một tiến trình gọi là Garbage Collection

Tên biến bắt buộc phải tuân thủ quy tắc đặt định danh trong Python. Ngoài ra có một số kiểu đặt tên biến bạn nên tuân theo.

Kiểu 1: Ký tự đầu tiên viết thường; các chữ cái trong từ viết thường; nếu tên có nhiều từ thì viết hoa chữ cái đầu mỗi từ tiếp theo. Ví dụ companySortedList, firstName. Đây là lối đặt tên thường gặp trong các ngôn ngữ kiểu C và được gọi là kiểu camelCase.

Kiểu 2: tất cả ký tự trong tên gọi đều viết thường; nếu tên có nhiều từ thì phân tách bằng dấu gạch chân_. Ví dụ first_name, last_name. Đây là quy ước dùng phổ biến hơn trong Python.

Có thể hơi lạ: trong Python không có khái niệm hằng như trong ngôn ngữ khác. Nếu muốn sử dụng hằng, bạn hãy tạo một biến và đặt tên toàn bộ là chữ hoa để nhớ rằng mình không được thay đổi giá trị của biến này.

Phép gán trong Python

Như ở trên đã trình bày về cách hoạt dodonngj của biến, phép gán trong Python có nhiệm vụ ghép đôi biến với giá trị

Ví dụ, trong lệnh sau:


1
2
3
a = 1000
b = a
c = b

Lệnh gán a=1000 sẽ tạo ra một giá trị số nguyên 1000 trong bộ nhớ và ‘a’ được dùng để trỏ tới giá trị này. ‘a’ đại diện cho giá trị 1000 trong bộ nhớ chứ ‘a’ không trực tiếp chứa giá trị 10000. sử dụng ‘a’ trong chương trình tương đương với sử dụng giá trị 1000 từ bộ nhớ.

Tham khảo thêm ngay  Magic method và nạp chồng toán tử trong Python

Lệnh gán b=a tạo tiếp biến b trỏ tới cùng giá trị với a, tức là cùng trỏ tới giá trị 1000 trong bộ nhớ. Khi này b và a thực tế là như nhau. Tương tự, lệnh gán c=b tạo tiếp biến c và cùng trỏ tới giá trị của b. Như vậy a,b,c thực tế là cùng một giá trị nhưng khác tên gọi. Giống như cùng một file nhưng bạn có thể tạo nhiều shortcut tới nó.

Trong python.

  1. Khai báo biến luôn phải đi kèm gán giá trị;
  2. không cần chỉ định kiểu dữ liệu
  3. không cần từ khóa nào khi khai báo biến

Để tiện lợi, Python cho phép ghép các phép gán như sau:


1
2
a = b = c = 1000 # tạo ra 3 biến a, b, c và cùng trỏ tới một giá trị
first_name, last_name, age = "Donald", "Trump", 40 # tạo 3 biến và trỏ tới 3 giá trị khác nhau (theo thứ tự)

Tức là bạn có thể tạo ra nhiều biến cùng lúc và cho chúng trỏ tới cùng một giá trị, hoặc bạn cũng có thể đồng thời khai báo nhiều biến trỏ tới nhiều giá trị khác nhau.

Lưu ý: trong phép gán a=b=c=1000. Nếu bạn tiếp tục gán a=2000 sau đó Python sẽ tạo ra một giá trị mới (2000) và a trỏ sang giá trị mới này. Tuy nhiên b và c vẫn trỏ sang giá trị cũ 1000. Điều này tương tự xảy ra nếu giá trị là chuỗi. Số và chuỗi là kiểu dữ liệu bất biến trong Python.

Kiểu dữ liệu không ảnh hưởng đến phép gán. Nghĩa là ban đầu bạn gán cho biến giá trị số, sau này có tiếp tục gán cho biến đó giá trị chuỗi. …


1
2
3
4
5
6
7
>>> a = 1000 # ban đầu a trỏ tới giá trị số
>>> a
1000
>>> a = "Donald Trump" # a trỏ tới giá trị chuỗi
>>> a
'Donald Trump'
>>>

Trong ví dụ trên, ban đầu a trỏ tới giá trị số nguyên, sau đó a lại trỏ tới giá trị chuỗi ký tự.

Các kiểu dữ liệu cơ bản trong Python

Khi khai báo và gán giá trị cho biến bạn không cần chỉ định kiểu dữ liệu. Python tự động xác định kiểu dữ liệu. Trong bài học này chúng ta chỉ điểm qua một số nét chính của các kiểu dữ liệu này.

Tham khảo thêm ngay  Giới thiệu chung về class trong Python, constructor

Python có các kiểu dữ liệu cơ bản: số, chuỗi, danh sách, tuple, từ điển, boolean.

Kiểu số trong python chia làm 3 loại: số nguyên (int), số thực (float), số phức (complex)

Số nguyên có thể viết ở cơ số 10, cơ số 8, cơ số 16. Kiểu float phải có dấu thập phân và có thể viết ở dạng khoa học. Kiểu complex phải có ký tự ảo j.

Chú ý: Python 2.x có hai kiểu số nguyên int và long. Kiểu long cần biểu diễn với hậu tố l. Số nguyên ở hệ cơ số 8 viết bắt đầu bằng 0. Vì vậy, khi đọc tài liệu nên lưu ý xem đó là Python 2 hay Python 3. Hai phiên bản này có nhiều điểm không tương thích.

Kiểu boolean chỉ nhận một trong hai giá trị True hoặc False.

Lưu ý giá trị boolead phải viết chính xác True/False. Nếu viết true/false là sẽ bị lỗi.

Kiểu chuỗi ký tự được viết trong cặp dấu ngoặc đơn, ngoặc kép trong cặp ba dấu ngoặc đơn hoặc ba dấu ngoặc kép.


1
2
3
4
s1 = 'Hello world' # trong cặp ngoặc đơn
s2 = "Hello world" # trong cặp ngoặc kép
s3 = '''Hello world''' # trong cặp 3 dấu ngoặc đơn
s4 = """Hello world""" # trong cặp 3 dấu ngoặc kép.

Mặc định chuỗi ký tự trong Python chỉ chứa ký tự Unicode. Python không có kiểu ký tự. Ký tự được coi là một chuỗi có 1 phần tử.

Kiểu danh sách trong Python tương tự như kiểu mảng trong các ngôn ngữ như C nhưng không giới hạn kiểu dữ liệu của phần tử cũng như không cố định số phần tử. Cách viết giá trị kiểu danh sách như sau:


1
companies = ['Apple', 'Google', 'Microsoft', 'IBM', 1945, 1975]

Tuple là kiểu dữ liệu ít gặp ở các ngôn ngữ C. Tuple tương tự như một danh sách cố định chỉ đọc. Bạn cũng có thể hình dung tuple giống như danh sách tham số của phương thức C. Tuple được viết như sau.


1
tuple = ('Donald Trump', 40, 'USA')

Từ điển chứa các cặp khóa: giá trị tương tự như từ điển song ngữ. Giá trị của từ điển được viết như sua:


1
person = {'Name' : 'Donald', 'Age' : 40, 'Job' : 'President'}

Leave a Reply

Your email address will not be published. Required fields are marked *