Lexis trong Python là gì?

Phần này sẽ bắt đầu đề cập đến ngữ nghĩa cơ bản của ngôn ngữ Python. Trái ngược với cú pháp được đề cập trong phần trước, ngữ nghĩa của một ngôn ngữ liên quan đến ý nghĩa của các câu lệnh. Như với cuộc thảo luận về cú pháp của chúng ta, ở đây chúng ta sẽ xem trước một số cấu trúc ngữ nghĩa thiết yếu trong Python để cung cấp cho bạn hệ quy chiếu tốt hơn để hiểu mã trong các phần sau

Phần này sẽ đề cập đến ngữ nghĩa của các biến và đối tượng, đó là những cách chính để bạn lưu trữ, tham chiếu và thao tác trên dữ liệu trong tập lệnh Python

Biến Python là con trỏ

Gán biến trong Python dễ như đặt tên biến ở bên trái của dấu bằng [

x = 1         # x is an integer
x = 'hello'   # now x is a string
x = [1, 2, 3] # now x is a list
0]

# assign 4 to the variable x
x = 4

Điều này có vẻ đơn giản, nhưng nếu bạn có mô hình tinh thần sai về hoạt động này, thì cách thức hoạt động của Python có vẻ khó hiểu. Chúng ta sẽ tìm hiểu ngắn gọn về điều đó ở đây

Trong nhiều ngôn ngữ lập trình, các biến tốt nhất nên được coi là thùng chứa hoặc bộ chứa mà bạn đặt dữ liệu vào đó. Vì vậy, trong C, chẳng hạn, khi bạn viết

// C code
int x = 4;

về cơ bản, bạn đang xác định một "bộ nhớ" có tên là

x = 1         # x is an integer
x = 'hello'   # now x is a string
x = [1, 2, 3] # now x is a list
1 và đặt giá trị
x = 1         # x is an integer
x = 'hello'   # now x is a string
x = [1, 2, 3] # now x is a list
2 vào đó. Ngược lại, trong Python, các biến tốt nhất không nên được coi là vùng chứa mà là con trỏ. Vì vậy, trong Python, khi bạn viết

x = 4

về cơ bản, bạn đang xác định một con trỏ có tên

x = 1         # x is an integer
x = 'hello'   # now x is a string
x = [1, 2, 3] # now x is a list
1 trỏ đến một số nhóm khác có chứa giá trị
x = 1         # x is an integer
x = 'hello'   # now x is a string
x = [1, 2, 3] # now x is a list
2. Lưu ý một hậu quả của việc này. bởi vì các biến Python chỉ trỏ đến các đối tượng khác nhau, không cần phải "khai báo" biến hoặc thậm chí yêu cầu biến luôn trỏ đến thông tin cùng loại. Đây là ý nghĩa mà mọi người nói Python được gõ động. tên biến có thể trỏ đến các đối tượng thuộc bất kỳ loại nào. Vì vậy, trong Python, bạn có thể làm những việc như thế này

Trong 1]

x = 1         # x is an integer
x = 'hello'   # now x is a string
x = [1, 2, 3] # now x is a list

Mặc dù người dùng các ngôn ngữ được nhập tĩnh có thể bỏ lỡ kiểu an toàn đi kèm với các khai báo giống như trong C,

int x = 4;

kiểu gõ động này là một trong những phần giúp Python viết nhanh và dễ đọc

Có một hệ quả của cách tiếp cận "biến như con trỏ" này mà bạn cần lưu ý. Nếu chúng ta có hai tên biến trỏ đến cùng một đối tượng có thể thay đổi, thì việc thay đổi tên này cũng sẽ thay đổi tên kia. Ví dụ: hãy tạo và sửa đổi danh sách

Trong 2]

x = [1, 2, 3]
y = x

Chúng tôi đã tạo hai biến

x = 1         # x is an integer
x = 'hello'   # now x is a string
x = [1, 2, 3] # now x is a list
1 và
x = 1         # x is an integer
x = 'hello'   # now x is a string
x = [1, 2, 3] # now x is a list
6 cả hai đều trỏ đến cùng một đối tượng. Do đó, nếu chúng tôi sửa đổi danh sách thông qua một trong các tên của nó, chúng tôi sẽ thấy rằng danh sách "khác" cũng sẽ được sửa đổi

Trong 3]

print[y]

[1, 2, 3]

Trong [4]

x.append[4] # append 4 to the list pointed to by x
print[y] # y's list is modified as well!

[1, 2, 3, 4]

Hành vi này có vẻ khó hiểu nếu bạn nghĩ sai về các biến là các thùng chứa dữ liệu. Nhưng nếu bạn đang nghĩ đúng về các biến là con trỏ tới đối tượng, thì hành vi này có ý nghĩa

Cũng lưu ý rằng nếu chúng ta sử dụng "

x = 1         # x is an integer
x = 'hello'   # now x is a string
x = [1, 2, 3] # now x is a list
0" để gán giá trị khác cho
x = 1         # x is an integer
x = 'hello'   # now x is a string
x = [1, 2, 3] # now x is a list
1, điều này sẽ không ảnh hưởng đến giá trị của
x = 1         # x is an integer
x = 'hello'   # now x is a string
x = [1, 2, 3] # now x is a list
6 – phép gán chỉ đơn giản là thay đổi đối tượng mà biến trỏ tới

Trong [5]

// C code
int x = 4;
0

[1, 2, 3, 4]

Một lần nữa, điều này hoàn toàn hợp lý nếu bạn coi

x = 1         # x is an integer
x = 'hello'   # now x is a string
x = [1, 2, 3] # now x is a list
1 và
x = 1         # x is an integer
x = 'hello'   # now x is a string
x = [1, 2, 3] # now x is a list
6 là các con trỏ và toán tử "
x = 1         # x is an integer
x = 'hello'   # now x is a string
x = [1, 2, 3] # now x is a list
0" là một phép toán thay đổi thứ mà tên trỏ tới

Bạn có thể thắc mắc liệu ý tưởng con trỏ này có làm cho các phép toán số học trong Python khó theo dõi hay không, nhưng Python được thiết lập để đây không phải là vấn đề. Số, chuỗi và các loại đơn giản khác là bất biến. bạn không thể thay đổi giá trị của chúng – bạn chỉ có thể thay đổi giá trị mà các biến trỏ tới. Vì vậy, ví dụ, hoàn toàn an toàn khi thực hiện các thao tác như sau

Trong [6]

// C code
int x = 4;
2

// C code
int x = 4;
3

Khi chúng ta gọi

int x = 4;
3, chúng ta không sửa đổi giá trị của đối tượng
int x = 4;
4 được chỉ ra bởi
x = 1         # x is an integer
x = 'hello'   # now x is a string
x = [1, 2, 3] # now x is a list
1; . Vì lý do này, giá trị của
x = 1         # x is an integer
x = 'hello'   # now x is a string
x = [1, 2, 3] # now x is a list
6 không bị ảnh hưởng bởi hoạt động

Tất cả mọi thứ là một đối tượng

Python là ngôn ngữ lập trình hướng đối tượng và trong Python mọi thứ đều là đối tượng

Hãy xác định điều này có nghĩa là gì. Trước đó chúng ta đã thấy rằng các biến chỉ đơn giản là con trỏ và bản thân tên biến không có thông tin kiểu đính kèm. Điều này khiến một số người tuyên bố sai rằng Python là ngôn ngữ không có kiểu. Nhưng đây không phải là trường hợp. Hãy xem xét những điều sau đây

Trong [7]

// C code
int x = 4;
4

Ra[7]

// C code
int x = 4;
5

Trong [8]

// C code
int x = 4;
6

Ra[8]

// C code
int x = 4;
7

Trong [9]

// C code
int x = 4;
8

Ra[9]

// C code
int x = 4;
9

Python có các loại;

Trong các ngôn ngữ lập trình hướng đối tượng như Python, một đối tượng là một thực thể chứa dữ liệu cùng với siêu dữ liệu và/hoặc chức năng được liên kết. Trong Python, mọi thứ đều là một đối tượng, có nghĩa là mọi thực thể đều có một số siêu dữ liệu [được gọi là thuộc tính] và chức năng liên quan [được gọi là phương thức]. Các thuộc tính và phương thức này được truy cập thông qua cú pháp dấu chấm

Ví dụ, trước đây chúng ta đã thấy rằng các danh sách có một phương thức

int x = 4;
9, phương thức này sẽ thêm một mục vào danh sách và được truy cập thông qua cú pháp dấu chấm ["
x = [1, 2, 3]
y = x
0"]

Trong [10]

x = 4
0

x = 4
1

Mặc dù có thể mong đợi các đối tượng phức hợp như danh sách có các thuộc tính và phương thức, nhưng điều đôi khi bất ngờ là trong Python, ngay cả các kiểu đơn giản cũng có các thuộc tính và phương thức kèm theo. Ví dụ: các loại số có thuộc tính

x = [1, 2, 3]
y = x
1 và
x = [1, 2, 3]
y = x
2 trả về phần thực và phần ảo của giá trị, nếu được xem dưới dạng số phức

Trong [11]

x = 4
2

x = 4
3

Các phương thức giống như các thuộc tính, ngoại trừ chúng là các hàm mà bạn có thể gọi bằng cách sử dụng dấu ngoặc đơn mở và đóng. Ví dụ: số dấu phẩy động có một phương thức gọi là

x = [1, 2, 3]
y = x
3 để kiểm tra xem giá trị có phải là số nguyên không

Trong [12]

x = 4
4

Ra[12]

x = 4
5

Trong [13]

x = 4
6

Ra[13]

x = 4
7

Khi chúng tôi nói rằng mọi thứ trong Python là một đối tượng, chúng tôi thực sự muốn nói rằng mọi thứ đều là một đối tượng – ngay cả các thuộc tính và phương thức của các đối tượng cũng chính là các đối tượng với thông tin

x = [1, 2, 3]
y = x
4 của riêng chúng

Trong [14]

x = 4
8

Ra[14]

x = 4
9

Chúng ta sẽ thấy rằng sự lựa chọn thiết kế mọi thứ là đối tượng của Python cho phép một số cấu trúc ngôn ngữ rất thuận tiện

Từ vựng trong Python là gì?

Một từ vựng thực hiện phân tích từ vựng, biến văn bản thành mã thông báo . Trình phân tích cú pháp lấy mã thông báo và xây dựng cấu trúc dữ liệu giống như cây cú pháp trừu tượng [AST].

Ngữ nghĩa trong Python là gì?

Ngữ nghĩa là thư viện Python để trích xuất thông tin ngữ nghĩa từ văn bản, bao gồm ngày, số, phương trình toán học và chuyển đổi đơn vị .

Ví dụ về mã thông báo trong Python là gì?

Mã thông báo là một tập hợp gồm một hoặc nhiều ký tự cùng có nghĩa. Có 5 loại token trong python được liệt kê bên dưới. từ khóa. .
[== ] Kiểm tra xem giá trị của hai toán hạng có bằng nhau không
[. =.
[>] Kiểm tra xem giá trị của hai toán hạng có giống nhau không [giống như. =

Cú pháp trong Python là gì?

Tháng 1 năm 2021] Cú pháp của ngôn ngữ lập trình Python là tập hợp các quy tắc xác định cách viết và diễn giải chương trình Python [ .

Chủ Đề