Bài tập Python có phải là một biểu thức không?

Một tính năng mới thú vị được gọi là biểu thức gán đã được giới thiệu trong PEP572 trong Python 3. 8. Biểu thức gán sử dụng toán tử

x = 5
# can be written as:
[x := 5]  # valid, but not recomended!
# the brackets are crucial
9 để gán giá trị của một biểu thức cho một biến. Vì toán tử
x = 5
# can be written as:
[x := 5]  # valid, but not recomended!
# the brackets are crucial
9 giống với mắt và ngà của một con hải mã, nên nó được gọi một cách không chính thức là “toán tử hải mã”

Python phiên bản 3. 8 ra mắt với một tính năng mới mà một số lập trình viên Python đã mong đợi từ khá lâu. Một cách mới để gán các đối tượng cho các biến đã được giới thiệu, tôi. e. các. = toán tử. Nó cung cấp cho các lập trình viên một cách thuận tiện để gán các biến ở giữa các biểu thức. Nếu bạn nhìn vào các nhân vật với một chút trí tưởng tượng, bạn có thể thấy sự tương đồng với mắt và ngà của một con hải mã, vì vậy đây là lý do tại sao được gọi một cách trìu mến là người điều khiển hải mã

Các biểu thức gán đã được thảo luận trong PEP 572 và đây là nội dung được viết về cách đặt tên

During discussion of this PEP, the operator became informally known as "the walrus operator". The construct's formal name is "Assignment Expressions" [as per the PEP title], but they may also be referred to as "Named Expressions" [e.g. the CPython reference implementation uses that name internally].

Chúng tôi sẽ giới thiệu cách gán này trong phần này của hướng dẫn Python của chúng tôi

Một phép gán đơn giản cũng có thể được thay thế bằng một biểu thức gán, mặc dù nó có vẻ vụng về và chắc chắn không phải là trường hợp sử dụng dự định của nó

x = 5
# can be written as:
[x := 5]  # valid, but not recomended!
# the brackets are crucial

ĐẦU RA

5

Hãy xem một ví dụ về Mã nhỏ chỉ sử dụng các phép gán truyền thống

txt = 'Python needs training!'
ideal_length = 22

n = len[txt]
if n == ideal_length:
    print[f'The length {n} is ideal!']
else:
    print[f'{n} is not ideal!']

ĐẦU RA

The length 22 is ideal!

Chúng tôi sẽ sử dụng toán tử hải mã mới trong đoạn mã Python sau

txt = 'Python needs training!'
ideal_length = 22

if [n := len[txt]] == ideal_length:
    print[f'The length {n} is ideal!']
else:
    print[f'The length {n} is not ideal!']

ĐẦU RA

The length 22 is ideal!

Được rồi, bạn có thể nói điều này không ấn tượng lắm và phiên bản đầu tiên có thể được coi là dễ đọc hơn. Vì vậy, chúng ta hãy xem xét một trường hợp sử dụng hữu ích hơn

Đào tạo Python trực tiếp

Thưởng thức trang này?

Nhìn thấy. Tổng quan về các khóa học Python trực tiếp

đăng ký tại đây

Các ứng dụng hữu ích của Biểu thức chuyển nhượng

Danh sách hiểu

Trong phần sau, bạn sẽ thấy cách hiểu danh sách với toán tử hải mã

def f[x]:
    return x + 4

numbers = [3, 7, 2, 9, 12]

odd_numbers = [result for x in numbers if [result := f[x]] % 2]
odd_numbers

ĐẦU RA

________số 8

Cách thực hiện trên hiệu quả hơn cách hiểu danh sách không có biểu thức gán, vì chúng ta sẽ phải gọi hàm hai lần

def f[x]:
    return x + 4

numbers = [3, 7, 2, 9, 12]

odd_numbers = [f[x] for x in numbers if  f[x] % 2]
odd_numbers

ĐẦU RA

________số 8

Biểu thức chính quy

Cũng có một lợi thế lớn khi chúng ta sử dụng các biểu thức chính quy

x = 5
# can be written as:
[x := 5]  # valid, but not recomended!
# the brackets are crucial
1

ĐẦU RA

x = 5
# can be written as:
[x := 5]  # valid, but not recomended!
# the brackets are crucial
2

Đọc tệp có độ dài cố định

x = 5
# can be written as:
[x := 5]  # valid, but not recomended!
# the brackets are crucial
3

ĐẦU RA

x = 5
# can be written as:
[x := 5]  # valid, but not recomended!
# the brackets are crucial
4

Cách sử dụng trong Vòng lặp While

Trong chương về vòng lặp while của Hướng dẫn Python của chúng tôi, chúng tôi đã có một trò chơi đoán số nhỏ

x = 5
# can be written as:
[x := 5]  # valid, but not recomended!
# the brackets are crucial
5

Như bạn có thể thấy, chúng tôi đã phải khởi tạo

5
5 bằng 0 để có thể vào vòng lặp. Chúng ta có thể thực hiện việc khởi tạo trực tiếp trong điều kiện vòng lặp bằng một biểu thức gán và đơn giản hóa toàn bộ mã bằng cách này

x = 5
# can be written as:
[x := 5]  # valid, but not recomended!
# the brackets are crucial
6

ĐẦU RA

x = 5
# can be written as:
[x := 5]  # valid, but not recomended!
# the brackets are crucial
7

Đưa đến cùng cực

Chúng tôi đã nói ở đầu trang này rằng một số lập trình viên Python đã mong đợi cấu trúc này trong một thời gian dài. Một lý do tại sao nó không được giới thiệu sớm hơn là thực tế là nó cũng có thể được sử dụng để viết mã vốn khó đọc hơn nếu được sử dụng để mở rộng. Đoạn mã sau đang hiển thị một ví dụ cực đoan như vậy không được khuyến nghị sử dụng

Phép gán là một biểu thức hay một câu lệnh?

Các ngôn ngữ khác định nghĩa phép gán là một câu lệnh [nghĩa là không thể sử dụng nó trong một biểu thức]. Các phép gán thường cho phép một biến giữ các giá trị khác nhau tại các thời điểm khác nhau trong phạm vi và vòng đời của nó.

Bài tập trong Python là gì?

Một câu lệnh gán đánh giá danh sách biểu thức [hãy nhớ rằng đây có thể là một biểu thức đơn hoặc danh sách được phân tách bằng dấu phẩy, danh sách sau mang lại một bộ] và gán đối tượng kết quả duy nhất cho từng danh sách đích, từ trái sang phải

Phép gán biến có phải là một câu lệnh không?

Một câu lệnh gán sẽ thay đổi giá trị được giữ trong một biến . Chương trình sử dụng câu lệnh gán. Câu lệnh gán đặt giá trị 123 vào biến. Nói cách khác, trong khi chương trình đang thực thi, sẽ có một phần bộ nhớ 64 bit chứa giá trị 123.

Tại sao tôi không thể sử dụng một phép gán trong một biểu thức trong Python?

Lỗi là một lỗi đánh máy đơn giản. x = 0, gán 0 cho biến x, được viết trong khi phép so sánh x == 0 chắc chắn đúng như mục đích . Nhiều phương án thay thế đã được đề xuất.

Chủ Đề