sách gpt4 ai đã đi

Tại sao Python không hỗ trợ các phép toán i++/i--?

In lại Tác giả:qq735679552 Thời gian cập nhật: 2022-09-29 22:32:09 32 4
mua khóa gpt4 Nike

CFSDN nhấn mạnh vào việc tạo ra giá trị thông qua mã nguồn mở. Chúng tôi cam kết xây dựng một nền tảng chia sẻ tài nguyên để mọi người làm CNTT có thể tìm thấy thế giới tuyệt vời của riêng mình tại đây.

Bài đăng trên blog CFSDN này về lý do Python không hỗ trợ các phép toán i++/i-- được tác giả thu thập và sắp xếp. Nếu bạn quan tâm đến bài viết này, vui lòng thích nó.

Bạn hẳn đã nghĩ về điều đó. Tuy nhiên, tình hình không lý tưởng. Trong Python, chỉ có thể sử dụng các thao tác như i++/i--.

Tại sao Python không hỗ trợ các phép toán i++/i--?

Hoạt động tăng dần trong python

  .

Đoạn mã sau đây là phương pháp phổ biến được hầu hết các lập trình viên sử dụng để thực hiện các hoạt động tự tăng (giảm) trong Python.

  1. >>> a = 2 
  2. >>> in(a) 
  3.  
  4. >>> a += 1 
  5. >>> in(a) 
  6.  
  7. >>> a += 100 
  8. >>> in(a) 
  9. 103 
  10.  
  11. >>> b = 'CHÀO' 
  12. >>> b += 1 
  13. Traceback (cuộc gọi gần đây nhất cuối cùng): 
  14.   Tài liệu "", dòng 1, TRONG  
  15. TypeError: có thể chỉ một nối chuỗi (không "số nguyên"ĐẾN đường 
  16.  
  17. >>> b += 'dữ liệu' 
  18. >>> b 
  19. 'Xin chào dữ liệu' 

Trong đoạn mã trên, vì toán tử + cũng có thể biểu diễn phép nối chuỗi nên chúng ta cũng có thể nối chuỗi vào chuỗi gốc.

Chúng ta có thể sử dụng a++ để tăng a thêm 1 không? 

  .

  1. >>> một++ 
  2.   Tài liệu "", dòng 1 
  3.     một++ 
  4.       ^ 
  5. SyntaxError: cú pháp không hợp lệ 

Câu trả lời là: Không, theo thiết kế, Python không cho phép sử dụng "toán tử" ++. Thuật ngữ ++ được gọi là toán tử tăng trong C++/Java và không có chỗ trong Python.

Tại sao Python không hỗ trợ phép toán ++?

  .

Nếu bạn muốn hiểu rõ hơn về vấn đề này, bạn cần có kiến ​​thức nền về thiết kế ngôn ngữ lập trình.

Việc không bao gồm tùy chọn toán tử ++ trong Python là một quyết định về thiết kế. Những người chịu trách nhiệm tạo ra chức năng trong ngôn ngữ Python thấy không cần thiết phải giới thiệu toán tử gia tăng theo kiểu CPP.

[Lưu ý] CPP là gì? Cái gọi là CPP thực chất là C++. Từ C++ thường được phát âm là "C cộng cộng" trong giới lập trình viên ở Trung Quốc đại lục, trong khi các lập trình viên phương Tây thường phát âm là "C cộng cộng". Tôi đã học được điều gì đó mới.

Khi trình thông dịch Python phân tích cú pháp ký hiệu ++ từ dữ liệu đầu vào của chúng ta, nó sẽ diễn giải ký hiệu đó theo cách sau:

Vì toán tử + nhị phân là toán tử cộng nên a++ sẽ được coi là a, + và +. Nhưng Python mong đợi một số sau toán tử + đầu tiên. Do đó, nó sẽ đưa ra lỗi cú pháp trên a++ vì dấu + thứ hai không phải là một số.

++a được hiểu như sau:

  • Toán tử + một ngôi trong Python được gọi là toán tử đồng nhất. Câu trả lời này chỉ trả về số nguyên. Đó là lý do tại sao nó là phép toán đồng nhất trên số nguyên
  • Ví dụ, +5 có giá trị là 5 và +-5 có giá trị là -5. Đây là toán tử một ngôi hoạt động trên số thực.
  • ++a sẽ được phân tích cú pháp thành + và +a, nhưng +a thứ hai lại được coi là (+a), do đó +(+(a)) chỉ đơn giản là đánh giá thành a.
  • Vì vậy, ngay cả khi chúng ta muốn tăng giá trị của a thêm 1, chúng ta cũng không thể thực hiện bằng ký hiệu ++ vì toán tử như vậy không tồn tại.

Do đó, chúng ta phải sử dụng toán tử += cho loại tăng này.

  1. một += 1 
  2. một -= 1 

Phép toán += hoạt động như thế nào?

Bạn có thể nghĩ rằng vì có dấu = nên đây có thể là một câu lệnh gán. Tuy nhiên, đây không phải là một câu lệnh gán thông thường. Đây được gọi là câu lệnh gán nâng cao. (Phiên bản bổ sung của hoạt động phân công thông thường).

Trong một câu lệnh gán thông thường, vế phải sẽ được đánh giá trước rồi mới được gán cho vế trái.

  1. # Kết quả của 2 + 3 là 5, sau đó kết quả 5 được gán cho tham chiếu bên trái 
  2. một = 2 + 3 

Tuy nhiên, trong câu lệnh gán nâng cao, vế trái được vận hành trước, sau đó mới được đánh giá vế phải. Việc này được thực hiện để giá trị cập nhật có thể được ghi tại chỗ vào phía bên trái. (Phân tích bộ nhớ nhiệm vụ cụ thể sẽ được đề cập trong các bài viết tiếp theo).

  1. # Đọc giá trị của a rồi cộng thêm 3 vào chỗ đó 
  2. một += 3 

Đây là cách duy nhất để tăng một biến mà không cần sử dụng câu lệnh phân bổ lại như a = a + 1. Tuy nhiên, nói chung, tùy chọn này không quan trọng vì trình thông dịch sẽ tối ưu hóa mã khi chạy.

Liên kết gốc: https://www.toutiao.com/a6991294794387489311/ .

Cuối cùng, bài viết này về lý do Python không hỗ trợ các hoạt động i++/i-- kết thúc tại đây. Nếu bạn muốn biết thêm về lý do Python không hỗ trợ các hoạt động i++/i--, vui lòng tìm kiếm các bài viết CFSDN hoặc tiếp tục duyệt các bài viết liên quan. Tôi hy vọng bạn sẽ ủng hộ blog của tôi trong tương lai! .

32 4 0
qq735679552
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com