Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?

Chương & NBSP; 4. & NBSP; Giới thiệu các loại đối tượng Python

Chương này bắt đầu chuyến tham quan ngôn ngữ Python của chúng tôi. Trong một ý nghĩa không chính thức, trong Python, chúng ta làm mọi thứ với công cụ. Những thứ khác có hình thức hoạt động như bổ sung và kết nối, và các thứ khác của Cameron đề cập đến các đối tượng mà chúng tôi thực hiện các hoạt động đó. Trong phần này của cuốn sách, trọng tâm của chúng tôi là vào những thứ đó và những điều mà các chương trình của chúng tôi có thể làm với nó.

Một cách chính thức hơn, trong Python, dữ liệu có dạng đối tượng, hoặc các đối tượng tích hợp mà Python cung cấp hoặc các đối tượng chúng ta tạo bằng cách sử dụng Python hoặc các công cụ ngôn ngữ bên ngoài như thư viện mở rộng C. Mặc dù chúng tôi sẽ tăng cường định nghĩa này sau này, các đối tượng về cơ bản chỉ là các phần của bộ nhớ, với các giá trị và bộ hoạt động liên quan.objects—either built-in objects that Python provides, or objects we create using Python or external language tools such as C extension libraries. Although we’ll firm up this definition later, objects are essentially just pieces of memory, with values and sets of associated operations.

Bởi vì các đối tượng là khái niệm cơ bản nhất trong lập trình Python, chúng tôi sẽ bắt đầu chương này với một cuộc khảo sát về các loại đối tượng tích hợp Python.

Tuy nhiên, bằng cách giới thiệu, trước tiên, hãy để trước tiên thiết lập một bức tranh rõ ràng về cách chương này phù hợp với bức tranh Python tổng thể. Từ góc độ cụ thể hơn, các chương trình Python có thể được phân tách thành các mô -đun, câu lệnh, biểu thức và đối tượng, như sau:

  1. Các chương trình bao gồm các mô -đun.

  2. Các mô -đun chứa các câu lệnh.

  3. Câu lệnh chứa biểu thức.

  4. Biểu thức tạo và xử lý các đối tượng..

Các cuộc thảo luận về các mô -đun trong Chương & NBSP; 3 đã giới thiệu mức độ cao nhất của hệ thống phân cấp này. Phần này các chương bắt đầu ở phía dưới, khám phá cả các đối tượng tích hợp và các biểu thức bạn có thể mã hóa để sử dụng chúng.

Tại sao sử dụng các loại tích hợp?

Nếu bạn đã sử dụng các ngôn ngữ cấp thấp hơn như C hoặc C ++, bạn sẽ biết rằng phần lớn các trung tâm làm việc của bạn trong việc triển khai các đối tượng, còn được gọi là cấu trúc dữ liệu để thể hiện các thành phần trong miền ứng dụng của bạn. Bạn cần đặt ra các cấu trúc bộ nhớ, quản lý phân bổ bộ nhớ, thực hiện các thói quen tìm kiếm và truy cập, v.v. Những công việc này là về tẻ nhạt (và dễ bị lỗi) khi chúng phát ra âm thanh, và chúng thường đánh lạc hướng khỏi các mục tiêu thực sự của chương trình của bạn.objects—also known as data structures—to represent the components in your application’s domain. You need to lay out memory structures, manage memory allocation, implement search and access routines, and so on. These chores are about as tedious (and error prone) as they sound, and they usually distract from your program’s real goals.

Trong các chương trình Python điển hình, hầu hết các công việc lẩm bẩm này biến mất. Bởi vì Python cung cấp các loại đối tượng mạnh mẽ như một phần nội tại của ngôn ngữ, nên thường không cần phải mã hóa việc triển khai đối tượng trước khi bạn bắt đầu giải quyết các vấn đề. Trên thực tế, trừ khi bạn có nhu cầu xử lý đặc biệt mà các loại tích hợp don don cung cấp, bạn hầu như luôn luôn sử dụng một đối tượng tích hợp thay vì thực hiện của riêng bạn. Dưới đây là một số lý do tại sao:

  • Các đối tượng tích hợp làm cho các chương trình dễ dàng viết. Đối với các tác vụ đơn giản, các loại tích hợp thường là tất cả những gì bạn cần để đại diện cho cấu trúc của các miền vấn đề. Bởi vì bạn nhận được các công cụ mạnh mẽ như bộ sưu tập (danh sách) và bảng tìm kiếm (từ điển) miễn phí, bạn có thể sử dụng chúng ngay lập tức. Bạn có thể nhận được rất nhiều công việc được thực hiện với các loại đối tượng tích hợp Python.. For simple tasks, built-in types are often all you need to represent the structure of problem domains. Because you get powerful tools such as collections (lists) and search tables (dictionaries) for free, you can use them immediately. You can get a lot of work done with Python’s built-in object types alone.

  • Các đối tượng tích hợp là các thành phần của phần mở rộng. Đối với các tác vụ phức tạp hơn, bạn vẫn có thể cần cung cấp các đối tượng của riêng mình, sử dụng các lớp Python hoặc giao diện ngôn ngữ C. Nhưng như bạn sẽ thấy trong các phần sau của cuốn sách này, các đối tượng được triển khai thủ công thường được xây dựng trên các loại tích hợp như danh sách và từ điển. Chẳng hạn, cấu trúc dữ liệu ngăn xếp có thể được triển khai như một lớp quản lý hoặc tùy chỉnh một danh sách tích hợp.. For more complex tasks, you still may need to provide your own objects, using Python classes or C language interfaces. But as you’ll see in later parts of this book, objects implemented manually are often built on top of built-in types such as lists and dictionaries. For instance, a stack data structure may be implemented as a class that manages or customizes a built-in list.

  • Các đối tượng tích hợp thường hiệu quả hơn các cấu trúc dữ liệu tùy chỉnh. Các loại tích hợp Python đã sử dụng các thuật toán cấu trúc dữ liệu đã được tối ưu hóa được triển khai trong C cho tốc độ. Mặc dù bạn có thể tự mình viết các loại đối tượng tương tự, nhưng bạn sẽ thường khó có thể nhận được mức độ hiệu suất của các loại đối tượng tích hợp cung cấp.. Python’s built-in types employ already optimized data structure algorithms that are implemented in C for speed. Although you can write similar object types on your own, you’ll usually be hard-pressed to get the level of performance built-in object types provide.

  • Các đối tượng tích hợp là một phần tiêu chuẩn của ngôn ngữ. Theo một số cách, Python mượn cả từ các ngôn ngữ dựa vào các công cụ tích hợp (ví dụ: LISP) và các ngôn ngữ dựa vào lập trình viên để cung cấp triển khai công cụ hoặc các khung của riêng họ (ví dụ: C ++). Mặc dù bạn có thể thực hiện các loại đối tượng độc đáo trong Python, nhưng bạn không cần phải làm như vậy để bắt đầu. Hơn nữa, vì các bản dựng của Python, là tiêu chuẩn, nên chúng luôn luôn giống nhau; Mặt khác, các khung độc quyền có xu hướng khác nhau từ trang web này sang trang khác.. In some ways, Python borrows both from languages that rely on built-in tools (e.g., LISP) and languages that rely on the programmer to provide tool implementations or frameworks of their own (e.g., C++). Although you can implement unique object types in Python, you don’t need to do so just to get started. Moreover, because Python’s built-ins are standard, they’re always the same; proprietary frameworks, on the other hand, tend to differ from site to site.

Nói cách khác, không chỉ các loại đối tượng tích hợp giúp lập trình dễ dàng hơn mà còn có sức mạnh và hiệu quả hơn hầu hết những gì có thể được tạo ra từ đầu. Bất kể bạn có thực hiện các loại đối tượng mới hay không, các đối tượng tích hợp tạo thành cốt lõi của mọi chương trình Python.

Các loại dữ liệu cốt lõi của Python

Bảng & NBSP; Một số loại này có thể có vẻ quen thuộc nếu bạn đã sử dụng các ngôn ngữ khác; Chẳng hạn, các số và chuỗi đại diện cho các giá trị số và văn bản, và các tệp cung cấp một giao diện để xử lý các tệp được lưu trữ trên máy tính của bạn.literals—that is, the expressions that generate these objects.[11] Some of these types will probably seem familiar if you’ve used other languages; for instance, numbers and strings represent numeric and textual values, respectively, and files provide an interface for processing files stored on your computer.

Bảng & NBSP; 4-1. & NBSP; Các đối tượng tích hợp xem trước

Loại đối tượng

Ví dụ theo nghĩa đen/sáng tạo

Số

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S = 'Spam' >>> len(S)# Length 4 >>> S[0]# The first item in S, indexing by zero-based position 'S' >>> S[1]# The second item from the left 'p'
4,
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S = 'Spam' >>> len(S)# Length 4 >>> S[0]# The first item in S, indexing by zero-based position 'S' >>> S[1]# The second item from the left 'p'
5,
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S = 'Spam' >>> len(S)# Length 4 >>> S[0]# The first item in S, indexing by zero-based position 'S' >>> S[1]# The second item from the left 'p'
6,
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S = 'Spam' >>> len(S)# Length 4 >>> S[0]# The first item in S, indexing by zero-based position 'S' >>> S[1]# The second item from the left 'p'
7,
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S = 'Spam' >>> len(S)# Length 4 >>> S[0]# The first item in S, indexing by zero-based position 'S' >>> S[1]# The second item from the left 'p'
8

Dây

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S = 'Spam' >>> len(S)# Length 4 >>> S[0]# The first item in S, indexing by zero-based position 'S' >>> S[1]# The second item from the left 'p'
9,
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S[-1]# The last item from the end in S 'm' >>> S[-2]# The second to last item from the end 'a'
0

Danh sách

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S[-1]# The last item from the end in S 'm' >>> S[-2]# The second to last item from the end 'a'
1

Từ điển

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S[-1]# The last item from the end in S 'm' >>> S[-2]# The second to last item from the end 'a'
2

Bộ dữ liệu

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S[-1]# The last item from the end in S 'm' >>> S[-2]# The second to last item from the end 'a'
3

Các tập tin

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S[-1]# The last item from the end in S 'm' >>> S[-2]# The second to last item from the end 'a'
4

Các loại khác

Bộ, loại,

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S[-1]# The last item from the end in S 'm' >>> S[-2]# The second to last item from the end 'a'
5, booleans

Bảng & nbsp; 4-1 không thực sự hoàn chỉnh, bởi vì mọi thứ chúng tôi xử lý trong các chương trình Python là một loại đối tượng. Chẳng hạn, khi chúng tôi thực hiện khớp mẫu văn bản trong Python, chúng tôi tạo các đối tượng mẫu và khi chúng tôi thực hiện tập lệnh mạng, chúng tôi sử dụng các đối tượng ổ cắm. Các loại đối tượng khác thường được tạo ra bằng cách nhập và sử dụng các mô -đun, và chúng có hành vi của riêng họ.

Chúng tôi gọi các loại đối tượng trong bảng & NBSP; 4-1 Các loại dữ liệu cốt lõi vì chúng được tích hợp hiệu quả vào ngôn ngữ Python, đó là, có cú pháp cụ thể để tạo ra hầu hết chúng. Chẳng hạn, khi bạn chạy mã sau:core data types because they are effectively built into the Python language—that is, there is specific syntax for generating most of them. For instance, when you run the following code:

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 'spam'

Về mặt kỹ thuật, bạn đang chạy một biểu thức theo nghĩa đen, tạo ra và trả về một đối tượng chuỗi mới. Có cú pháp ngôn ngữ Python cụ thể để tạo đối tượng này. Tương tự, một biểu thức được bọc trong ngoặc vuông tạo nên một danh sách, một trong niềng răng xoăn tạo ra một từ điển, v.v. Mặc dù, như chúng tôi sẽ thấy, không có loại khai báo loại trong Python, cú pháp của các biểu thức bạn chạy xác định các loại đối tượng bạn tạo và sử dụng. Trên thực tế, các biểu thức tạo đối tượng như trong Bảng & NBSP; 4-1 thường là nơi các loại bắt nguồn từ ngôn ngữ Python.

Cũng quan trọng không kém, một khi bạn tạo một đối tượng, bạn liên kết bộ hoạt động của nó cho mọi thời đại, bạn chỉ có thể thực hiện các hoạt động chuỗi trên một chuỗi và danh sách các hoạt động trong danh sách. Như bạn sẽ học, Python được gõ linh hoạt (nó theo dõi các loại cho bạn một cách tự động thay vì yêu cầu mã khai báo), nhưng nó cũng được gõ mạnh (bạn chỉ có thể thực hiện trên các hoạt động đối tượng có giá trị cho loại của nó).dynamically typed (it keeps track of types for you automatically instead of requiring declaration code), but it is also strongly typed (you can only perform on an object operations that are valid for its type).

Về mặt chức năng, các loại đối tượng trong bảng & nbsp; 4-1 chung chung và mạnh mẽ hơn những gì bạn có thể quen. Chẳng hạn, bạn sẽ thấy rằng danh sách và từ điển một mình là các công cụ biểu diễn dữ liệu mạnh mẽ làm giảm hầu hết các công việc bạn làm để hỗ trợ các bộ sưu tập và tìm kiếm bằng các ngôn ngữ cấp thấp hơn. Nói tóm lại, các danh sách cung cấp các bộ sưu tập được đặt hàng của các đối tượng khác, trong khi từ điển lưu trữ các đối tượng theo khóa; Cả danh sách và từ điển có thể được lồng, có thể phát triển và thu nhỏ theo yêu cầu và có thể chứa các đối tượng thuộc bất kỳ loại nào.

Chúng tôi sẽ nghiên cứu từng loại đối tượng trong Bảng & NBSP; 4-1 chi tiết trong các chương sắp tới. Tuy nhiên, trước khi đào sâu vào các chi tiết, hãy để bắt đầu bằng cách xem nhanh các đối tượng cốt lõi của Python. Phần còn lại của chương này cung cấp bản xem trước các hoạt động mà chúng tôi sẽ khám phá sâu hơn trong các chương tiếp theo. Don Tiết hy vọng sẽ tìm thấy câu chuyện đầy đủ ở đây, mục tiêu của chương này chỉ là để kích thích sự thèm ăn của bạn và giới thiệu một số ý tưởng chính. Tuy nhiên, cách tốt nhất để bắt đầu là bắt đầu, vì vậy hãy để Lôi nhảy ngay vào một số mã thực.

Số

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S = 'Spam' >>> len(S)# Length 4 >>> S[0]# The first item in S, indexing by zero-based position 'S' >>> S[1]# The second item from the left 'p'
4,
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S = 'Spam' >>> len(S)# Length 4 >>> S[0]# The first item in S, indexing by zero-based position 'S' >>> S[1]# The second item from the left 'p'
5,
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S = 'Spam' >>> len(S)# Length 4 >>> S[0]# The first item in S, indexing by zero-based position 'S' >>> S[1]# The second item from the left 'p'
6,
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S = 'Spam' >>> len(S)# Length 4 >>> S[0]# The first item in S, indexing by zero-based position 'S' >>> S[1]# The second item from the left 'p'
7,
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S = 'Spam' >>> len(S)# Length 4 >>> S[0]# The first item in S, indexing by zero-based position 'S' >>> S[1]# The second item from the left 'p'
8

Dây

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S = 'Spam' >>> len(S)# Length 4 >>> S[0]# The first item in S, indexing by zero-based position 'S' >>> S[1]# The second item from the left 'p'
9,
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S[-1]# The last item from the end in S 'm' >>> S[-2]# The second to last item from the end 'a'
0L at the end of the last operation’s result here: Python automatically converts up to a long integer type when extra precision is needed. You can, for instance, compute 2 to the 1,000,000 power in Python (but you probably shouldn’t try to print the result—with more than 300,000 digits, you may be waiting awhile!). Watch what happens when some floating-point numbers are printed:

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 3.1415 * 2# repr: as code 6.2830000000000004 >>> print 3.1415 * 2# str: user-friendly 6.283

Danh sách

Bên cạnh các biểu thức, còn có một số ít các mô -đun số hữu ích được vận chuyển với Python:

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> import math >>> math.pi 3.1415926535897931 >>> math.sqrt(85) 9.2195444572928871

Mô -đun

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S[-1]# The last item in S 'm' >>> S[len(S)-1]# Negative indexing, the hard way 'm'
2 chứa các công cụ số nâng cao hơn dưới dạng chức năng, trong khi mô -đun
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S[-1]# The last item in S 'm' >>> S[len(S)-1]# Negative indexing, the hard way 'm'
3 thực hiện tạo số ngẫu nhiên và các lựa chọn ngẫu nhiên (ở đây, từ danh sách Python, được giới thiệu sau trong chương này):

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> import random >>> random.random( ) 0.59268735266273953 >>> random.choice([1, 2, 3, 4]) 1

Python cũng bao gồm các đối tượng số kỳ lạ hơn, chẳng hạn như các số phức tạp, số thập phân có độ chính xác cố định và đặt ra và miền mở rộng nguồn mở của bên thứ ba thậm chí còn có nhiều hơn (ví dụ: ma trận và vectơ). Chúng tôi sẽ trì hoãn thảo luận về các chi tiết của các loại này cho đến sau này trong cuốn sách.

Cho đến nay, chúng tôi đã sử dụng Python giống như một máy tính đơn giản; Để thực hiện công lý tốt hơn cho các loại tích hợp của nó, hãy để Lừa chuyển sang khám phá các chuỗi.

Dây

Chuỗi được sử dụng để ghi lại thông tin văn bản cũng như các bộ sưu tập byte tùy ý. Chúng là ví dụ đầu tiên của chúng tôi về những gì chúng tôi gọi là một chuỗi trong Python, đó là một bộ sưu tập các đối tượng khác được đặt hàng. Trình tự duy trì thứ tự từ trái sang phải trong số các mục mà chúng chứa: các mặt hàng của chúng được lưu trữ và tìm nạp bởi vị trí tương đối của chúng. Nói đúng ra, các chuỗi là chuỗi của chuỗi một ký tự; Các loại trình tự khác bao gồm danh sách và bộ dữ liệu (được bảo hiểm sau).sequence in Python—that is, a positionally ordered collection of other objects. Sequences maintain a left-to-right order among the items they contain: their items are stored and fetched by their relative position. Strictly speaking, strings are sequences of one-character strings; other types of sequences include lists and tuples (covered later).

Hoạt động trình tự

Như các chuỗi, chuỗi hỗ trợ các hoạt động giả định đặt hàng vị trí giữa các mục. Ví dụ: nếu chúng ta có chuỗi bốn ký tự, chúng ta có thể xác minh độ dài của nó bằng hàm

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S[-1]# The last item in S 'm' >>> S[len(S)-1]# Negative indexing, the hard way 'm'
4 tích hợp và tìm nạp các thành phần của nó bằng các biểu thức lập chỉ mục:indexing expressions:

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S = 'Spam' >>> len(S)# Length 4 >>> S[0]# The first item in S, indexing by zero-based position 'S' >>> S[1]# The second item from the left 'p'

Trong Python, các chỉ mục được mã hóa dưới dạng độ lệch từ phía trước, và do đó bắt đầu từ 0: mục đầu tiên là tại Index 0, thứ hai là tại Index 1, v.v. Trong Python, chúng ta cũng có thể lập chỉ mục ngược, từ cuối:

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S[-1]# The last item from the end in S 'm' >>> S[-2]# The second to last item from the end 'a'

Chính thức, một chỉ mục âm được thêm vào chỉ vào kích thước chuỗi, do đó, hai hoạt động sau đây tương đương (mặc dù đầu tiên dễ dàng hơn để mã hóa và ít dễ hiểu hơn):

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S[-1]# The last item in S 'm' >>> S[len(S)-1]# Negative indexing, the hard way 'm'

Lưu ý rằng chúng ta có thể sử dụng một biểu thức tùy ý trong các dấu ngoặc vuông, không chỉ là một số lượng cứng theo nghĩa đen, bất cứ nơi nào mà Python mong đợi một giá trị, chúng ta có thể sử dụng một nghĩa đen, một biến hoặc bất kỳ biểu thức nào. Cú pháp Python hoàn toàn chung chung theo cách này.

Ngoài việc lập chỉ mục vị trí đơn giản, các chuỗi cũng hỗ trợ một hình thức lập chỉ mục chung hơn được gọi là cắt, đây là một cách để trích xuất toàn bộ phần (lát) trong một bước duy nhất. Ví dụ:slicing, which is a way to extract an entire section (slice) in a single step. For example:

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S# A 4-character string 'Spam' >>> S[1:3]# Slice of S from offsets 1 through 2 (not 3) 'pa'

Có lẽ cách dễ nhất để nghĩ về các lát cắt là chúng là một cách để trích xuất toàn bộ cột từ một chuỗi trong một bước duy nhất. Hình thức chung của họ,

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S[-1]# The last item in S 'm' >>> S[len(S)-1]# Negative indexing, the hard way 'm'
5, có nghĩa là cho tôi mọi thứ trong
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S[-1]# The last item in S 'm' >>> S[len(S)-1]# Negative indexing, the hard way 'm'
6 từ Offset
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S[-1]# The last item in S 'm' >>> S[len(S)-1]# Negative indexing, the hard way 'm'
7 cho đến nhưng không bao gồm Offset
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S[-1]# The last item in S 'm' >>> S[len(S)-1]# Negative indexing, the hard way 'm'
8. Kết quả được trả về trong một đối tượng mới. Chẳng hạn, thao tác cuối cùng ở trên cung cấp cho chúng ta tất cả các ký tự trong chuỗi
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S[-1]# The last item in S 'm' >>> S[len(S)-1]# Negative indexing, the hard way 'm'
9 từ độ lệch từ 1 đến 2 (nghĩa là 3-1) dưới dạng chuỗi mới. Hiệu ứng là cắt lát hoặc phân tích ra khỏi hai nhân vật ở giữa.column from a string in a single step. Their general form,
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S[-1]# The last item in S 'm' >>> S[len(S)-1]# Negative indexing, the hard way 'm'
5, means “give me everything in
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S[-1]# The last item in S 'm' >>> S[len(S)-1]# Negative indexing, the hard way 'm'
6 from offset
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S[-1]# The last item in S 'm' >>> S[len(S)-1]# Negative indexing, the hard way 'm'
7 up to but not including offset
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S[-1]# The last item in S 'm' >>> S[len(S)-1]# Negative indexing, the hard way 'm'
8.” The result is returned in a new object. The last operation above, for instance, gives us all the characters in string
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S[-1]# The last item in S 'm' >>> S[len(S)-1]# Negative indexing, the hard way 'm'
9 from offsets 1 through 2 (that is, 3-1) as a new string. The effect is to slice or “parse out” the two characters in the middle.

Trong một lát cắt, giới hạn bên trái mặc định về 0 và giới hạn bên phải mặc định theo độ dài của chuỗi được cắt. Điều này dẫn đến một số biến thể sử dụng phổ biến:

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S[1:]# Everything past the first (1:len(S)) 'pam' >>> S# S itself hasn't changed 'Spam' >>> S[0:3]# Everything but the last 'Spa' >>> S[:3]# Same as S[0:3] 'Spa' >>> S[:-1]# Everything but the last again, but simpler (0:-1) 'Spa' >>> S[:]# All of S as a top-level copy (0:len(S)) 'Spam'

Lưu ý cách các độ lệch tiêu cực có thể được sử dụng để đưa ra giới hạn cho các lát cắt, và cách hoạt động cuối cùng sao chép toàn bộ chuỗi một cách hiệu quả. Như bạn sẽ học sau, không có lý do gì để sao chép một chuỗi, nhưng biểu mẫu này có thể hữu ích cho các chuỗi như danh sách.

Cuối cùng, dưới dạng các chuỗi, các chuỗi cũng hỗ trợ kết nối với dấu cộng (nối hai chuỗi vào một chuỗi mới) và lặp lại (tạo một chuỗi mới bằng cách lặp lại một chuỗi khác):concatenation with the plus sign (joining two strings into a new string), and repetition (making a new string by repeating another):

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
0

Lưu ý rằng dấu cộng (

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S[-1]# The last item from the end in S 'm' >>> S[-2]# The second to last item from the end 'a'
6) có nghĩa là những thứ khác nhau cho các đối tượng khác nhau: bổ sung cho các số và nối cho các chuỗi. Đây là một tài sản chung của Python mà chúng tôi sẽ gọi là đa hình sau này trong cuốn sách tổng hợp, ý nghĩa của một hoạt động phụ thuộc vào các đối tượng đang được vận hành. Như bạn sẽ thấy khi chúng tôi nghiên cứu gõ động, thuộc tính đa hình này chiếm phần lớn tính đồng nhất và tính linh hoạt của mã Python. Bởi vì các loại không bị ràng buộc, một hoạt động được mã hóa python thường có thể tự động hoạt động trên nhiều loại đối tượng khác nhau, miễn là chúng hỗ trợ giao diện tương thích (như hoạt động
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S[-1]# The last item from the end in S 'm' >>> S[-2]# The second to last item from the end 'a'
6 ở đây). Điều này hóa ra là một ý tưởng lớn trong Python; Bạn sẽ tìm hiểu thêm về nó sau trong chuyến lưu diễn của chúng tôi.polymorphism later in the book—in sum, the meaning of an operation depends on the objects being operated on. As you’ll see when we study dynamic typing, this polymorphism property accounts for much of the conciseness and flexibility of Python code. Because types aren’t constrained, a Python-coded operation can normally work on many different types of objects automatically, as long as they support a compatible interface (like the
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S[-1]# The last item from the end in S 'm' >>> S[-2]# The second to last item from the end 'a'
6 operation here). This turns out to be a huge idea in Python; you’ll learn more about it later on our tour.

Bất biến

Lưu ý rằng trong các ví dụ trước, chúng tôi đã không thay đổi chuỗi ban đầu với bất kỳ hoạt động nào chúng tôi chạy trên đó. Mỗi hoạt động chuỗi được xác định để tạo ra một chuỗi mới là kết quả của nó, bởi vì các chuỗi là bất biến trong Python, chúng không thể thay đổi tại chỗ sau khi chúng được tạo. Ví dụ: bạn có thể thay đổi một chuỗi bằng cách gán cho một trong các vị trí của nó, nhưng bạn luôn có thể xây dựng một chuỗi mới và gán nó cho cùng một tên. Bởi vì Python làm sạch các vật thể cũ khi bạn đi (như bạn sẽ thấy sau), điều này không hiệu quả như nó có thể nghe:immutable in Python—they cannot be changed in-place after they are created. For example, you can’t change a string by assigning to one of its positions, but you can always build a new one and assign it to the same name. Because Python cleans up old objects as you go (as you’ll see later), this isn’t as inefficient as it may sound:

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
1

Mỗi đối tượng trong Python được phân loại là bất biến (không thể thay đổi) hay không. Về các loại cốt lõi, số, chuỗi và bộ dữ liệu là bất biến; Danh sách và từ điển không (chúng có thể được thay đổi tại chỗ một cách tự do). Trong số những thứ khác, tính bất biến có thể được sử dụng để đảm bảo rằng một đối tượng không đổi trong suốt chương trình của bạn.

Các phương pháp cụ thể loại

Mỗi hoạt động chuỗi mà chúng tôi đã nghiên cứu cho đến nay thực sự là một hoạt động trình tự, đó là, các hoạt động này cũng sẽ hoạt động trên các chuỗi khác trong Python, bao gồm cả danh sách và bộ dữ liệu. Tuy nhiên, ngoài các hoạt động trình tự chung, các chuỗi cũng có các hoạt động của riêng chúng, có sẵn dưới dạng các phương thức (các hàm được gắn vào đối tượng, được kích hoạt bằng biểu thức cuộc gọi).methods (functions attached to the object, which are triggered with a call expression).

Ví dụ: phương thức chuỗi

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S# A 4-character string 'Spam' >>> S[1:3]# Slice of S from offsets 1 through 2 (not 3) 'pa'
2 là thao tác tìm kiếm cơ bản (nó trả về phần bù của chuỗi con được truyền hoặc
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S# A 4-character string 'Spam' >>> S[1:3]# Slice of S from offsets 1 through 2 (not 3) 'pa'
3 nếu nó không có mặt) và phương thức chuỗi
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S# A 4-character string 'Spam' >>> S[1:3]# Slice of S from offsets 1 through 2 (not 3) 'pa'
4 thực hiện các tìm kiếm và thay thế toàn cầu:

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
2

Một lần nữa, mặc dù tên của các phương thức chuỗi này, chúng tôi không thay đổi các chuỗi ban đầu ở đây, nhưng tạo ra các chuỗi mới vì kết quả vì các chuỗi là bất biến, chúng tôi phải làm theo cách này. Các phương thức chuỗi là dòng đầu tiên của các công cụ xử lý văn bản trong Python; Các phương thức khác chia một chuỗi thành các chuỗi con trên một dấu phân cách (tiện dụng như một dạng phân tích cú pháp đơn giản), thực hiện chuyển đổi trường hợp, kiểm tra nội dung của chuỗi (chữ số, chữ cái, v.v. :

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
3

Một lưu ý ở đây: Mặc dù các hoạt động trình tự là chung, các phương pháp không phải là các hoạt động phương pháp trực tuyến chỉ hoạt động trên các chuỗi và không có gì khác. Theo nguyên tắc thông thường, bộ công cụ Python, được xếp lớp: các hoạt động chung trải dài nhiều loại hiển thị dưới dạng các hàm hoặc biểu thức tích hợp (ví dụ:

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S# A 4-character string 'Spam' >>> S[1:3]# Slice of S from offsets 1 through 2 (not 3) 'pa'
5,
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S# A 4-character string 'Spam' >>> S[1:3]# Slice of S from offsets 1 through 2 (not 3) 'pa'
6), nhưng các hoạt động cụ thể là các cuộc gọi phương thức (ví dụ:
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S# A 4-character string 'Spam' >>> S[1:3]# Slice of S from offsets 1 through 2 (not 3) 'pa'
7). Tìm các công cụ bạn cần trong số tất cả các danh mục này sẽ trở nên tự nhiên hơn khi bạn sử dụng Python nhiều hơn, nhưng phần tiếp theo cung cấp một vài mẹo bạn có thể sử dụng ngay bây giờ.

Tìm sự giúp đỡ

Các phương pháp được giới thiệu trong phần trước là một mẫu đại diện, nhưng nhỏ, về những gì có sẵn cho các đối tượng chuỗi. Nói chung, cuốn sách này không đầy đủ trong cái nhìn của nó về các phương thức đối tượng. Để biết thêm chi tiết, bạn luôn có thể gọi hàm

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S# A 4-character string 'Spam' >>> S[1:3]# Slice of S from offsets 1 through 2 (not 3) 'pa'
8 tích hợp, trả về danh sách tất cả các thuộc tính có sẵn trong một đối tượng nhất định. Bởi vì các phương thức là các thuộc tính chức năng, chúng sẽ hiển thị trong danh sách này:

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
4

Có lẽ bạn đã giành được sự quan tâm đến các tên có dấu gạch dưới trong danh sách này cho đến sau này trong cuốn sách, khi chúng tôi nghiên cứu quá tải nhà điều hành trong các lớp học, họ đại diện cho việc thực hiện đối tượng chuỗi và có sẵn để hỗ trợ tùy chỉnh. Nói chung, các dấu gạch dưới hàng đầu và theo dõi là mô hình đặt tên Python sử dụng để thực hiện chi tiết. Các tên không có dấu gạch dưới trong danh sách này là các phương thức có thể gọi được trên các đối tượng chuỗi.

Hàm

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S# A 4-character string 'Spam' >>> S[1:3]# Slice of S from offsets 1 through 2 (not 3) 'pa'
8 chỉ đơn giản là đưa ra các phương thức tên. Để hỏi họ làm gì, bạn có thể chuyển chúng đến chức năng
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S[1:]# Everything past the first (1:len(S)) 'pam' >>> S# S itself hasn't changed 'Spam' >>> S[0:3]# Everything but the last 'Spa' >>> S[:3]# Same as S[0:3] 'Spa' >>> S[:-1]# Everything but the last again, but simpler (0:-1) 'Spa' >>> S[:]# All of S as a top-level copy (0:len(S)) 'Spam'
0:

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
5

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S[1:]# Everything past the first (1:len(S)) 'pam' >>> S# S itself hasn't changed 'Spam' >>> S[0:3]# Everything but the last 'Spa' >>> S[:3]# Same as S[0:3] 'Spa' >>> S[:-1]# Everything but the last again, but simpler (0:-1) 'Spa' >>> S[:]# All of S as a top-level copy (0:len(S)) 'Spam'
0 là một trong số ít giao diện cho một hệ thống mã được vận chuyển với Python được gọi là PYDOC, một công cụ trích xuất tài liệu từ các đối tượng. Sau đó trong cuốn sách, bạn sẽ thấy Pydoc cũng có thể đưa ra các báo cáo của mình ở định dạng HTML.PyDoc—a tool for extracting documentation from objects. Later in the book, you’ll see that PyDoc can also render its reports in HTML format.

Bạn cũng có thể yêu cầu trợ giúp trên toàn bộ chuỗi (ví dụ:

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S[1:]# Everything past the first (1:len(S)) 'pam' >>> S# S itself hasn't changed 'Spam' >>> S[0:3]# Everything but the last 'Spa' >>> S[:3]# Same as S[0:3] 'Spa' >>> S[:-1]# Everything but the last again, but simpler (0:-1) 'Spa' >>> S[:]# All of S as a top-level copy (0:len(S)) 'Spam'
2), nhưng bạn có thể nhận được nhiều trợ giúp hơn bạn muốn xem. Nó nói chung tốt hơn để hỏi về một phương pháp cụ thể, như chúng tôi đã làm ở trên.

Để biết thêm chi tiết, bạn cũng có thể tham khảo hướng dẫn tham khảo thư viện tiêu chuẩn Python, hoặc sách tham khảo được xuất bản thương mại, nhưng

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S# A 4-character string 'Spam' >>> S[1:3]# Slice of S from offsets 1 through 2 (not 3) 'pa'
8 và
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S[1:]# Everything past the first (1:len(S)) 'pam' >>> S# S itself hasn't changed 'Spam' >>> S[0:3]# Everything but the last 'Spa' >>> S[:3]# Same as S[0:3] 'Spa' >>> S[:-1]# Everything but the last again, but simpler (0:-1) 'Spa' >>> S[:]# All of S as a top-level copy (0:len(S)) 'Spam'
0 là dòng tài liệu đầu tiên trong Python.

Những cách khác để mã hóa chuỗi

Cho đến nay, chúng tôi đã xem xét các hoạt động chuỗi đối tượng chuỗi và các phương thức cụ thể loại. Python cũng cung cấp nhiều cách khác nhau để chúng tôi mã hóa các chuỗi, mà chúng tôi sẽ khám phá thêm sau đó (với các ký tự đặc biệt được thể hiện dưới dạng trình tự thoát hiểm ngược):

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
6

Python cho phép các chuỗi được đặt trong các ký tự trích dẫn đơn hoặc kép (chúng có nghĩa là cùng một thứ). Nó cũng có một hình thức theo nghĩa đen của chuỗi đa dòng được đặt trong các trích dẫn ba (đơn hoặc đôi), hình thức này được sử dụng, tất cả các dòng được liên kết với nhau và các ký tự cuối cùng được thêm vào nơi xuất hiện phá vỡ dòng. Đây là một sự tiện lợi nhỏ của cú pháp, nhưng nó rất hữu ích cho việc nhúng những thứ như mã HTML và XML vào tập lệnh Python:

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
7

Python cũng hỗ trợ một chuỗi RAW RAW, tắt cơ chế thoát hiểm (chúng bắt đầu với chữ R), cũng như một hình thức chuỗi Unicode hỗ trợ quốc tế hóa (chúng bắt đầu với chữ U và chứa các ký tự multibyte). Về mặt kỹ thuật, chuỗi Unicode là một loại dữ liệu khác với chuỗi bình thường, nhưng nó hỗ trợ tất cả các hoạt động chuỗi giống nhau. Chúng tôi sẽ gặp tất cả các hình thức chuỗi đặc biệt này trong các chương sau.r), as well as a Unicode string form that supports internationalization (they begin with the letter u and contain multibyte characters). Technically, Unicode string is a different data type than normal string, but it supports all the same string operations. We’ll meet all these special string forms in later chapters.

Kết hợp mẫu

Một điểm đáng chú ý trước khi chúng tôi tiếp tục là không có phương thức nào trong các phương thức đối tượng chuỗi hỗ trợ xử lý văn bản dựa trên mẫu. Kết hợp mẫu văn bản là một công cụ nâng cao bên ngoài phạm vi cuốn sách này, nhưng người đọc có hình nền bằng các ngôn ngữ kịch bản khác có thể quan tâm để biết rằng để thực hiện khớp mẫu trong Python, chúng tôi nhập một mô -đun gọi là

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S[1:]# Everything past the first (1:len(S)) 'pam' >>> S# S itself hasn't changed 'Spam' >>> S[0:3]# Everything but the last 'Spa' >>> S[:3]# Same as S[0:3] 'Spa' >>> S[:-1]# Everything but the last again, but simpler (0:-1) 'Spa' >>> S[:]# All of S as a top-level copy (0:len(S)) 'Spam'
5. Mô -đun này có các cuộc gọi tương tự để tìm kiếm, chia tách và thay thế, nhưng vì chúng ta có thể sử dụng các mẫu để chỉ định các chuỗi con, chúng ta có thể nói chung hơn nhiều:

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
8

Ví dụ này tìm kiếm một chuỗi con bắt đầu bằng từ "Hello Hello, theo sau là không hoặc nhiều tab hoặc nhiều không gian, theo sau là các ký tự tùy ý được lưu dưới dạng một nhóm phù hợp, bị chấm dứt bởi từ thế giới. Nếu như vậy như được tìm thấy, các phần của chuỗi con phù hợp với các phần của mẫu được đặt trong ngoặc đơn có sẵn dưới dạng nhóm. Ví dụ, mẫu sau đây chọn ra ba nhóm được phân tách bằng dấu gạch chéo:

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
9

Kết hợp mẫu là một công cụ xử lý văn bản khá tiên tiến, nhưng cũng có sự hỗ trợ trong Python để xử lý ngôn ngữ tiên tiến hơn, bao gồm cả xử lý ngôn ngữ tự nhiên. Mặc dù vậy, tôi đã nói đủ về các chuỗi cho hướng dẫn này, vì vậy, hãy để Lôi chuyển sang loại tiếp theo.

Danh sách

Đối tượng danh sách Python là chuỗi chung nhất được cung cấp bởi ngôn ngữ. Danh sách là các bộ sưu tập được đặt hàng theo vị trí của các đối tượng được gõ tùy ý và chúng không có kích thước cố định. Chúng cũng là những chuỗi không giống với các chuỗi, danh sách có thể được sửa đổi tại chỗ bằng cách gán cho các lần bù cũng như một loạt các cuộc gọi phương thức danh sách.

Hoạt động trình tự

Bởi vì chúng là trình tự, danh sách hỗ trợ tất cả các hoạt động trình tự chúng tôi đã thảo luận cho các chuỗi; Sự khác biệt duy nhất là kết quả thường là danh sách thay vì chuỗi. Chẳng hạn, được đưa ra một danh sách ba mục:

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 3.1415 * 2# repr: as code 6.2830000000000004 >>> print 3.1415 * 2# str: user-friendly 6.283
0

Chúng ta có thể lập chỉ mục, cắt lát, v.v.

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 3.1415 * 2# repr: as code 6.2830000000000004 >>> print 3.1415 * 2# str: user-friendly 6.283
1

Loại hoạt động cụ thể

Danh sách Python sườn có liên quan đến các mảng trong các ngôn ngữ khác, nhưng chúng có xu hướng mạnh mẽ hơn. Đối với một điều, họ không có ràng buộc loại cố định, ví dụ, danh sách mà chúng ta chỉ xem, chứa ba đối tượng thuộc loại hoàn toàn khác nhau (số nguyên, chuỗi và số điểm nổi). Hơn nữa, danh sách không có kích thước cố định. Đó là, chúng có thể phát triển và thu nhỏ theo yêu cầu, để đáp ứng các hoạt động cụ thể theo danh sách:

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 3.1415 * 2# repr: as code 6.2830000000000004 >>> print 3.1415 * 2# str: user-friendly 6.283
2

Ở đây, phương thức danh sách

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S[1:]# Everything past the first (1:len(S)) 'pam' >>> S# S itself hasn't changed 'Spam' >>> S[0:3]# Everything but the last 'Spa' >>> S[:3]# Same as S[0:3] 'Spa' >>> S[:-1]# Everything but the last again, but simpler (0:-1) 'Spa' >>> S[:]# All of S as a top-level copy (0:len(S)) 'Spam'
6 mở rộng kích thước danh sách và chèn một mục ở cuối; Phương thức
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S[1:]# Everything past the first (1:len(S)) 'pam' >>> S# S itself hasn't changed 'Spam' >>> S[0:3]# Everything but the last 'Spa' >>> S[:3]# Same as S[0:3] 'Spa' >>> S[:-1]# Everything but the last again, but simpler (0:-1) 'Spa' >>> S[:]# All of S as a top-level copy (0:len(S)) 'Spam'
7 (hoặc câu lệnh tương đương ____998) sau đó loại bỏ một mục ở một phần bù nhất định, khiến danh sách bị thu hẹp. Các phương thức danh sách khác chèn các mục tại một vị trí tùy ý (
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S[1:]# Everything past the first (1:len(S)) 'pam' >>> S# S itself hasn't changed 'Spam' >>> S[0:3]# Everything but the last 'Spa' >>> S[:3]# Same as S[0:3] 'Spa' >>> S[:-1]# Everything but the last again, but simpler (0:-1) 'Spa' >>> S[:]# All of S as a top-level copy (0:len(S)) 'Spam'
9), xóa một mục đã cho theo giá trị (
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
00), v.v. Bởi vì danh sách là có thể thay đổi, hầu hết các phương thức danh sách cũng thay đổi đối tượng danh sách tại chỗ, thay vì tạo một phương thức mới:

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 3.1415 * 2# repr: as code 6.2830000000000004 >>> print 3.1415 * 2# str: user-friendly 6.283
3

Phương pháp Danh sách ____101 ở đây, ví dụ, đặt hàng danh sách theo thời trang tăng dần theo mặc định và

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
02 đảo ngược nó trong cả hai trường hợp, các phương thức sửa đổi danh sách trực tiếp.

Giới hạn kiểm tra

Mặc dù các danh sách không có kích thước cố định, Python vẫn không cho phép chúng tôi tham khảo các mục không có mặt. Lập chỉ mục kết thúc của danh sách luôn là một sai lầm, nhưng việc gán kết thúc:

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 3.1415 * 2# repr: as code 6.2830000000000004 >>> print 3.1415 * 2# str: user-friendly 6.283
4

Đây là mục đích, vì nó thường là một lỗi khi cố gắng gán phần cuối của danh sách (và đặc biệt khó chịu trong ngôn ngữ C. Thay vì âm thầm phát triển danh sách để đáp ứng, Python báo cáo một lỗi. Để phát triển danh sách, chúng tôi gọi các phương thức danh sách như

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S[1:]# Everything past the first (1:len(S)) 'pam' >>> S# S itself hasn't changed 'Spam' >>> S[0:3]# Everything but the last 'Spa' >>> S[:3]# Same as S[0:3] 'Spa' >>> S[:-1]# Everything but the last again, but simpler (0:-1) 'Spa' >>> S[:]# All of S as a top-level copy (0:len(S)) 'Spam'
6 thay thế.

Làm tổ

Một tính năng hay của các loại dữ liệu cốt lõi của Python là chúng hỗ trợ việc làm tổ tùy ý, chúng ta có thể làm tổ chúng trong bất kỳ sự kết hợp nào và sâu sắc như chúng ta muốn (ví dụ, chúng ta có thể có một danh sách có chứa một từ điển, chứa một danh sách khác, và do đó trên). Một ứng dụng ngay lập tức của tính năng này là đại diện cho các ma trận, hoặc các mảng đa chiều của Hồi giáo trong Python. Một danh sách với danh sách lồng nhau sẽ thực hiện công việc cho các ứng dụng cơ bản:

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 3.1415 * 2# repr: as code 6.2830000000000004 >>> print 3.1415 * 2# str: user-friendly 6.283
5

Ở đây, chúng tôi đã mã hóa một danh sách chứa ba danh sách khác. Hiệu ứng là đại diện cho một ma trận số 3 × 3. Một cấu trúc như vậy có thể được truy cập theo nhiều cách khác nhau:

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 3.1415 * 2# repr: as code 6.2830000000000004 >>> print 3.1415 * 2# str: user-friendly 6.283
6

Hoạt động đầu tiên ở đây tìm kiếm toàn bộ hàng thứ hai và lần thứ hai lấy mục thứ ba trong hàng đó, các hoạt động chỉ mục cùng nhau đưa chúng ta ngày càng sâu hơn vào cấu trúc đối tượng lồng nhau của chúng ta. [12]

Danh sách toàn diện

Ngoài các hoạt động trình tự và các phương thức liệt kê, Python bao gồm một hoạt động nâng cao hơn được gọi là biểu thức hiểu biết, hóa ra là một cách mạnh mẽ để xử lý các cấu trúc như ma trận của chúng tôi. Giả sử, ví dụ, chúng ta cần trích xuất cột thứ hai của ma trận mẫu của chúng ta. Nó rất dễ lấy hàng bằng cách lập chỉ mục đơn giản vì ma trận được lưu trữ bởi các hàng, nhưng nó gần như dễ dàng để có được một cột có danh sách hiểu:list comprehension expression, which turns out to be a powerful way to process structures like our matrix. Suppose, for instance, that we need to extract the second column of our sample matrix. It’s easy to grab rows by simple indexing because the matrix is stored by rows, but it’s almost as easy to get a column with a list comprehension:

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 3.1415 * 2# repr: as code 6.2830000000000004 >>> print 3.1415 * 2# str: user-friendly 6.283
7

List comprehensions derive from set notation; they are a way to build a new list by running an expression on each item in a sequence, one at a time, from left to right. List comprehensions are coded in square brackets (to tip you off to the fact that they make a list), and are composed of an expression and a looping construct that share a variable name (

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
04, here). The preceding list comprehension means basically what it says: “Give me
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
05 for each row in matrix
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
06, in a new list.” The result is a new list containing column 2 of the matrix.

List comprehensions can be more complex in practice:

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 3.1415 * 2# repr: as code 6.2830000000000004 >>> print 3.1415 * 2# str: user-friendly 6.283
8

The first operation here, for instance, adds 1 to each item as it is collected, and the second uses an

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
07 clause to filter odd numbers out of the result using the
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
08 modulus expression (remainder of division). List comprehensions make new lists of results, but can be used to iterate over any iterable object—here, for instance, we’ll use list comprehensions to step over a hardcoded list of coordinates, and a string:

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 3.1415 * 2# repr: as code 6.2830000000000004 >>> print 3.1415 * 2# str: user-friendly 6.283
9

List comprehensions are a bit too involved for me to say more about them here. The main point of this brief introduction is to illustrate that Python includes both simple and advanced tools in its arsenal. List comprehensions are an optional feature, but they tend to be handy in practice, and often provide a substantial processing speed advantage. They also work on any type that is a sequence in Python, as well as some types that are not. You’ll hear more about them later in this book.

Dictionaries

Python dictionaries are something completely different (Monty Python reference intended)—they are not sequences at all, but are instead known as mappings. Mappings are also collections of other objects, but they store objects by key instead of by relative position. In fact, mappings don’t maintain any reliable left-to-right order; they simply map keys to associated values. Dictionaries, the only mapping type in Python’s core objects set, are also mutable: they may be changed in-place, and can grow and shrink on demand, like lists.

Mapping Operations

When written as literals, dictionaries are coded in curly braces, and consist of a series of “key: value” pairs. Dictionaries are useful anytime we need to associate a set of values with keys—to describe the properties of something, for instance. As an example, consider the following three-item dictionary (with keys “food,” “quantity,” and “color”):

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> import math >>> math.pi 3.1415926535897931 >>> math.sqrt(85) 9.2195444572928871
0

We can index this dictionary by key to fetch and change the keys’ associated values. The dictionary index operation uses the same syntax as that used for sequences, but the item in the square brackets is a key, not a relative position:

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> import math >>> math.pi 3.1415926535897931 >>> math.sqrt(85) 9.2195444572928871
1

Although the curly-braces literal form does see use, it is perhaps more common to see dictionaries built up in different ways. The following, for example, starts with an empty dictionary, and fills it out one key at a time. Unlike out-of-bounds assignments in lists, which are forbidden, an assignment to new dictionary key creates that key:

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> import math >>> math.pi 3.1415926535897931 >>> math.sqrt(85) 9.2195444572928871
2

Here, we’re effectively using dictionary keys as field names in a record that describes someone. In other applications, dictionaries can also be used to replace searching operations—indexing a dictionary by key is often the fastest way to code a search in Python.

Nesting Revisited

In the prior example, we used a dictionary to describe a hypothetical person, with three keys. Suppose, though, that the information is more complex. Perhaps we need to record a first name and a last name, along with multiple job titles. This leads to another application of Python’s object nesting in action. The following dictionary, coded all at once as a literal, captures more structured information:

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> import math >>> math.pi 3.1415926535897931 >>> math.sqrt(85) 9.2195444572928871
3

Here, we again have a three-key dictionary at the top (keys “name,” “job,” and “age”), but the values have become more complex: a nested dictionary for the name to support multiple parts, and a nested list for the job to support multiple roles and future expansion. We can access the components of this structure much as we did for our matrix earlier, but this time some of our indexes are dictionary keys, not list offsets:

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> import math >>> math.pi 3.1415926535897931 >>> math.sqrt(85) 9.2195444572928871
4

Notice how the last operation here expands the nested job list—because the job list is a separate piece of memory from the dictionary that contains it, it can grow and shrink freely (object memory layout will be discussed further later in this book).

The real reason for showing you this example is to demonstrate the flexibility of Python’s core data types. As you can see, nesting allows us to build up complex information structures directly and easily. Building a similar structure in a low-level language like C would be tedious and require much more code: we would have to lay out and declare structures and arrays, fill out values, link everything together, and so on. In Python, this is all automatic—running the expression creates the entire nested object structure for us. In fact, this is one of the main benefits of scripting languages like Python.

Cũng quan trọng không kém, trong một ngôn ngữ cấp thấp hơn, chúng ta sẽ phải cẩn thận để làm sạch tất cả không gian đối tượng khi chúng ta không còn cần nó nữa. Trong Python, khi chúng ta mất tham chiếu cuối cùng đến đối tượng bằng cách gán biến của nó cho một thứ khác, ví dụ, tất cả không gian bộ nhớ bị chiếm bởi cấu trúc đối tượng đó được tự động làm sạch cho chúng ta:

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> import math >>> math.pi 3.1415926535897931 >>> math.sqrt(85) 9.2195444572928871
5

Về mặt kỹ thuật, Python có một tính năng được gọi là Bộ sưu tập rác, làm sạch bộ nhớ không sử dụng khi chương trình của bạn chạy và giải phóng bạn khỏi phải quản lý các chi tiết đó trong mã của bạn. Trong Python, không gian được khai hoang ngay lập tức, ngay khi tham chiếu cuối cùng về một đối tượng được gỡ bỏ. Chúng tôi sẽ nghiên cứu cách thức hoạt động này sau này trong cuốn sách này; Hiện tại, nó đủ để biết rằng bạn có thể sử dụng các đối tượng một cách tự do, mà không phải lo lắng về việc tạo ra không gian của chúng hoặc dọn dẹp khi bạn đi. [13]garbage collection that cleans up unused memory as your program runs and frees you from having to manage such details in your code. In Python, the space is reclaimed immediately, as soon as the last reference to an object is removed. We’ll study how this works later in this book; for now, it’s enough to know that you can use objects freely, without worrying about creating their space or cleaning up as you go.[13]

Phân loại phím: Đối với các vòng lặp

Là ánh xạ, như chúng tôi đã thấy, từ điển chỉ hỗ trợ truy cập các mục theo khóa. Tuy nhiên, họ cũng hỗ trợ các hoạt động cụ thể loại với các cuộc gọi phương thức hữu ích trong nhiều trường hợp sử dụng phổ biến.

Như đã đề cập trước đó, bởi vì từ điển không phải là trình tự, họ không duy trì bất kỳ thứ tự từ trái sang phải đáng tin cậy nào. Điều này có nghĩa là nếu chúng ta tạo một từ điển và in lại, các khóa của nó có thể quay lại theo một thứ tự khác so với cách chúng ta gõ chúng:

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> import math >>> math.pi 3.1415926535897931 >>> math.sqrt(85) 9.2195444572928871
6

Mặc dù vậy, chúng ta sẽ làm gì nếu chúng ta cần áp đặt đặt hàng lên các mục từ điển? Một giải pháp phổ biến là lấy một danh sách các khóa với phương pháp từ điển ____10109, sắp xếp theo danh sách phương thức

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
01, sau đó bước qua kết quả với vòng lặp Python
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
11:

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> import math >>> math.pi 3.1415926535897931 >>> math.sqrt(85) 9.2195444572928871
7

Tuy nhiên, đây là một quá trình ba bước, như chúng ta sẽ thấy trong các chương sau, trong các phiên bản gần đây của Python, nó có thể được thực hiện trong một bước với chức năng tích hợp

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
12 mới hơn (
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
12 trả về kết quả và sắp xếp nhiều đối tượng khác nhau các loại):

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> import math >>> math.pi 3.1415926535897931 >>> math.sqrt(85) 9.2195444572928871
8

Trường hợp này phục vụ như một cái cớ để giới thiệu vòng lặp Python

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
11. Vòng lặp
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
11 là một cách đơn giản và hiệu quả để bước qua tất cả các mục trong một chuỗi và lần lượt chạy một khối mã cho mỗi mục. Một biến vòng lặp do người dùng xác định (
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
16, ở đây) được sử dụng để tham khảo mục hiện tại mỗi lần thông qua. Hiệu ứng ròng trong ví dụ của chúng tôi là in các phím và giá trị từ điển không được đặt hàng, theo thứ tự khóa sắp xếp.

Vòng lặp

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
11 và người anh em họ nói chung là vòng lặp
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
18, là những cách chính chúng tôi mã hóa các tác vụ lặp đi lặp lại như các câu lệnh trong các tập lệnh của chúng tôi. Mặc dù vậy, thực sự, vòng lặp
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
11, giống như sự hiểu biết danh sách của nó (mà chúng tôi đã gặp trước đó) là một hoạt động trình tự. Nó hoạt động trên bất kỳ đối tượng nào là một chuỗi và, cũng giống như sự hiểu biết danh sách, ngay cả trên một số điều không. Ở đây, ví dụ, nó đang bước qua các ký tự trong một chuỗi, in phiên bản chữ hoa của mỗi ký tự như nó:

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> import math >>> math.pi 3.1415926535897931 >>> math.sqrt(85) 9.2195444572928871
9

Chúng tôi sẽ thảo luận về các tuyên bố lặp lại sau này trong cuốn sách.

Lặp lại và tối ưu hóa

Nếu vòng lặp

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
11 trông giống như biểu thức hiểu danh sách được giới thiệu trước đó, thì nên: cả hai đều thực sự là các công cụ lặp chung. Trên thực tế, cả hai sẽ hoạt động trên bất kỳ đối tượng nào tuân theo giao thức lặp, một ý tưởng được giới thiệu gần đây trong Python về cơ bản có nghĩa là một chuỗi được lưu trữ vật lý trong bộ nhớ hoặc một đối tượng tạo ra một mục tại một thời điểm trong bối cảnh hoạt động lặp. Đây là lý do tại sao cuộc gọi
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
12 được sử dụng trong phần trước hoạt động trực tiếp trên từ điển, chúng tôi không phải gọi phương thức
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
09 để có được một chuỗi vì từ điển là các đối tượng có thể sử dụng được.iteration protocol—an idea introduced recently in Python that essentially means a physically stored sequence in memory, or an object that generates one item at a time in the context of an iteration operation. This is why the
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
12 call used in the prior section works on the dictionary directly—we don’t have to call the
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
09 method to get a sequence because dictionaries are iterable objects.

Tôi sẽ có nhiều hơn để nói về giao thức lặp sau này trong cuốn sách này. Hiện tại, hãy nhớ rằng bất kỳ biểu thức hiểu danh sách nào, chẳng hạn như cái này, tính toán các bình phương của một danh sách các số:

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> import random >>> random.random( ) 0.59268735266273953 >>> random.choice([1, 2, 3, 4]) 1
0

luôn có thể được mã hóa như một vòng lặp

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
11 tương đương xây dựng danh sách kết quả theo cách thủ công bằng cách nối thêm như vậy:

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> import random >>> random.random( ) 0.59268735266273953 >>> random.choice([1, 2, 3, 4]) 1
1

Tuy nhiên, sự hiểu biết danh sách thường sẽ chạy nhanh hơn (thậm chí có thể nhanh gấp đôi) tài sản có thể quan trọng trong các chương trình của bạn cho các bộ dữ liệu lớn. Mặc dù vậy, đã nói rằng, tôi nên chỉ ra rằng các biện pháp thực hiện là kinh doanh khó khăn trong Python vì nó tối ưu hóa rất nhiều và có thể thay đổi từ phát hành đến phát hành.

Một quy tắc chính trong Python là mã hóa cho sự đơn giản và khả năng đọc trước tiên, và lo lắng về hiệu suất sau đó, sau khi chương trình của bạn hoạt động và sau khi bạn đã chứng minh rằng có một mối quan tâm hiệu suất thực sự. Thường xuyên hơn không, mã của bạn sẽ đủ nhanh như vậy. Tuy nhiên, nếu bạn cần điều chỉnh mã cho hiệu suất, Python bao gồm các công cụ để giúp bạn ra ngoài, bao gồm các mô -đun

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
24 và
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
25 và mô -đun
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
26. Bạn sẽ tìm thấy nhiều hơn về những điều này sau trong cuốn sách này và trong các hướng dẫn sử dụng Python.

Thiếu phím: Nếu kiểm tra

Một lưu ý khác về từ điển trước khi chúng tôi tiếp tục. Mặc dù chúng ta có thể gán cho một khóa mới để mở rộng từ điển, nhưng việc tìm kiếm một khóa không tồn tại vẫn là một sai lầm:

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> import random >>> random.random( ) 0.59268735266273953 >>> random.choice([1, 2, 3, 4]) 1
2

Đây là những gì chúng tôi muốn, nó thường là một lỗi lập trình để tìm nạp thứ gì đó thực sự ở đó. Nhưng, trong một số chương trình chung, chúng ta có thể luôn biết những khóa nào sẽ có mặt khi chúng ta viết mã của mình. Làm thế nào để chúng tôi xử lý các trường hợp như vậy và tránh các lỗi? Một mẹo ở đây là kiểm tra trước thời hạn. Phương pháp từ điển

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
27 cho phép chúng tôi truy vấn sự tồn tại của khóa và nhánh trên kết quả với câu lệnh Python
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
07:

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> import random >>> random.random( ) 0.59268735266273953 >>> random.choice([1, 2, 3, 4]) 1
3

Tôi sẽ có nhiều hơn nữa để nói về tuyên bố và cú pháp tuyên bố ____107 nói chung sau này trong cuốn sách này, nhưng hình thức chúng tôi sử dụng ở đây rất đơn giản: nó bao gồm từ

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
07, theo sau là một biểu thức được hiểu là một hoặc kết quả sai, theo sau là một khối mã để chạy nếu bài kiểm tra là đúng. Ở dạng đầy đủ, câu lệnh
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
07 cũng có thể có mệnh đề
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
32 cho trường hợp mặc định và một hoặc nhiều điều khoản
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
33 (nếu không) cho các thử nghiệm khác. Nó là công cụ lựa chọn chính trong Python và nó theo cách chúng tôi mã hóa logic trong các tập lệnh của chúng tôi.

Có nhiều cách khác để tạo từ điển và tránh truy cập khóa từ điển không tồn tại (bao gồm cả phương thức

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
34; biểu thức thành viên
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
35; và câu lệnh
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
36, một công cụ chúng ta sẽ gặp đầu tiên trong Chương & NBSP; Nhưng chúng tôi sẽ lưu các chi tiết về những điều đó cho đến một chương sau. Bây giờ, hãy để Lừa chuyển sang Tuples.

Bộ dữ liệu

Đối tượng tuple (phát âm là Toople, hay Tu Tuhple, tùy thuộc vào người bạn yêu cầu) gần như giống như một danh sách không thể thay đổi, các chuỗi là các chuỗi, như danh sách, nhưng chúng là bất biến, giống như các chuỗi. Về mặt cú pháp, chúng được mã hóa theo dấu ngoặc đơn thay vì dấu ngoặc vuông và chúng hỗ trợ các loại tùy ý, làm tổ và các hoạt động trình tự thông thường:

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> import random >>> random.random( ) 0.59268735266273953 >>> random.choice([1, 2, 3, 4]) 1
4

Sự khác biệt thực sự duy nhất cho các bộ dữ liệu là chúng không thể thay đổi sau khi tạo ra. Đó là, chúng là những chuỗi bất biến:

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> import random >>> random.random( ) 0.59268735266273953 >>> random.choice([1, 2, 3, 4]) 1
5

Tại sao phải là bộ đếm?

Vì vậy, tại sao có một loại giống như một danh sách, nhưng hỗ trợ ít hoạt động hơn? Thành thật mà nói, các bộ dữ liệu thường không được sử dụng thường xuyên như danh sách trong thực tế, nhưng tính bất biến của chúng là toàn bộ vấn đề. Nếu bạn vượt qua một bộ sưu tập các đối tượng xung quanh chương trình của bạn làm danh sách, nó có thể được thay đổi ở bất cứ đâu; Nếu bạn sử dụng một tuple, nó không thể. Đó là, Tuples cung cấp một loại ràng buộc toàn vẹn thuận tiện trong các chương trình lớn hơn những chương trình chúng ta có thể viết ở đây. Chúng tôi sẽ nói thêm về các bộ dữ liệu sau này trong cuốn sách. Tuy nhiên, hiện tại, hãy để Lừa nhảy về phía trước loại lõi chính cuối cùng của chúng tôi, tệp.

Các tập tin

Đối tượng tệp là giao diện chính của mã Python đối với các tệp bên ngoài trên máy tính của bạn. Chúng là một loại cốt lõi, nhưng chúng là một thứ gì đó kỳ quặc, không có cú pháp theo nghĩa đen cụ thể để tạo ra chúng. Thay vào đó, để tạo một đối tượng tệp, bạn gọi hàm

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
37 tích hợp, chuyển trong tên tệp bên ngoài dưới dạng chuỗi và chuỗi chế độ xử lý. Ví dụ: để tạo một tệp đầu ra, bạn sẽ chuyển tên của nó và chuỗi chế độ xử lý
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
38 để ghi dữ liệu:

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> import random >>> random.random( ) 0.59268735266273953 >>> random.choice([1, 2, 3, 4]) 1
6

Điều này tạo ra một tệp trong thư mục hiện tại và ghi văn bản vào nó (tên tệp có thể là một đường dẫn thư mục đầy đủ nếu bạn cần truy cập một tệp ở nơi khác trên máy tính của bạn). Để đọc lại những gì bạn vừa viết, hãy mở lại tệp trong chế độ xử lý

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
39, để đọc đầu vào (đây là mặc định nếu bạn bỏ qua chế độ trong cuộc gọi). Sau đó đọc nội dung của tập tin vào một chuỗi byte và hiển thị nó. Nội dung của tệp luôn luôn là một chuỗi byte cho tập lệnh của bạn, bất kể loại dữ liệu mà tệp chứa:

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> import random >>> random.random( ) 0.59268735266273953 >>> random.choice([1, 2, 3, 4]) 1
7

Các phương thức đối tượng tệp khác hỗ trợ các tính năng bổ sung mà chúng tôi không có thời gian để trang trải ở đây. Chẳng hạn, các đối tượng tệp cung cấp nhiều cách đọc và ghi hơn (

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
40 chấp nhận kích thước byte tùy chọn,
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
41 đọc một dòng tại một thời điểm, v.v.), cũng như các công cụ khác (
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
42 chuyển sang vị trí tệp mới). Chúng tôi sẽ đáp ứng toàn bộ các phương thức tệp sau này trong cuốn sách này, nhưng nếu bạn muốn xem trước nhanh ngay bây giờ, hãy chạy cuộc gọi
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S# A 4-character string 'Spam' >>> S[1:3]# Slice of S from offsets 1 through 2 (not 3) 'pa'
8 trên từ
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
44 (tên của loại dữ liệu tệp) và
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S[1:]# Everything past the first (1:len(S)) 'pam' >>> S# S itself hasn't changed 'Spam' >>> S[0:3]# Everything but the last 'Spa' >>> S[:3]# Same as S[0:3] 'Spa' >>> S[:-1]# Everything but the last again, but simpler (0:-1) 'Spa' >>> S[:]# All of S as a top-level copy (0:len(S)) 'Spam'
0 trên bất kỳ tên nào Điều đó trở lại:

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> import random >>> random.random( ) 0.59268735266273953 >>> random.choice([1, 2, 3, 4]) 1
8

Các công cụ giống như tệp khác

Hàm

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
37 là công việc cho hầu hết các xử lý tệp bạn sẽ làm trong Python. Mặc dù vậy, đối với các tác vụ nâng cao hơn, Python đi kèm với các công cụ giống như tệp bổ sung: đường ống, FIFOS, ổ cắm, tệp truy cập khóa, sự tồn tại của đối tượng, các tệp dựa trên mô tả, giao diện cơ sở dữ liệu hướng đối tượng và quan hệ, v.v. Ví dụ, các tệp mô tả, hỗ trợ khóa tệp và các công cụ cấp thấp khác và ổ cắm cung cấp giao diện cho giao tiếp mạng và giao tiếp. Chúng tôi đã giành được nhiều chủ đề trong cuốn sách này, nhưng bạn sẽ thấy chúng hữu ích khi bạn bắt đầu lập trình Python một cách nghiêm túc.

Các loại cốt lõi khác

Ngoài các loại cốt lõi mà chúng tôi đã thấy cho đến nay, có những loại khác có thể hoặc không đủ điều kiện để thành viên, tùy thuộc vào mức độ rộng của danh mục được xác định. Các bộ, ví dụ, là một bổ sung gần đây cho ngôn ngữ. Các bộ là các thùng chứa của các đối tượng khác được tạo bằng cách gọi hàm

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
47 tích hợp và chúng hỗ trợ các hoạt động tập toán học thông thường:

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> import random >>> random.random( ) 0.59268735266273953 >>> random.choice([1, 2, 3, 4]) 1
9

Ngoài ra, Python gần đây đã thêm các số thập phân (số điểm nổi có chính xác cố định) và booleans (với các đối tượng

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
48 và
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
49 được xác định trước về cơ bản chỉ là số nguyên 1 và 0 với logic hiển thị tùy chỉnh) và nó đã hỗ trợ một đối tượng đặc biệt được gọi là
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S[-1]# The last item from the end in S 'm' >>> S[-2]# The second to last item from the end 'a'
5:

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S = 'Spam' >>> len(S)# Length 4 >>> S[0]# The first item in S, indexing by zero-based position 'S' >>> S[1]# The second item from the left 'p'
0

Cách phá vỡ sự linh hoạt của mã của bạn

Tôi sẽ có nhiều hơn để nói về tất cả các loại này sau trong cuốn sách, nhưng cuối cùng có thêm một vài từ ở đây. Đối tượng loại cho phép mã kiểm tra các loại đối tượng mà nó sử dụng. Trên thực tế, có ít nhất ba cách để làm như vậy trong kịch bản Python:

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S = 'Spam' >>> len(S)# Length 4 >>> S[0]# The first item in S, indexing by zero-based position 'S' >>> S[1]# The second item from the left 'p'
1

Bây giờ tôi đã chỉ cho bạn tất cả những cách này để thực hiện kiểm tra loại Dấu hiệu của một lập trình viên cũ C-C trước tiên bắt đầu sử dụng Python). Bằng cách kiểm tra các loại cụ thể trong mã của bạn, bạn có hiệu quả phá vỡ tính linh hoạt của nó, bạn giới hạn nó chỉ làm việc với một loại. Nếu không có các thử nghiệm như vậy, mã của bạn có thể có thể làm việc trên toàn bộ các loại.

Điều này có liên quan đến ý tưởng đa hình được đề cập trước đó, và nó bắt nguồn từ việc thiếu các tuyên bố loại Python. Khi bạn học, trong Python, chúng tôi mã hóa các giao diện đối tượng (hỗ trợ hoạt động), không phải là loại. Không quan tâm đến các loại cụ thể có nghĩa là mã được tự động áp dụng cho nhiều người trong số chúng, bất kỳ đối tượng nào có giao diện tương thích sẽ hoạt động, bất kể loại cụ thể của nó. Mặc dù kiểm tra loại được hỗ trợ, và thậm chí là bắt buộc, nhưng trong một số trường hợp hiếm hoi, bạn sẽ thấy rằng nó không phải là cách suy nghĩ của Pythonic. Trên thực tế, bạn sẽ thấy rằng tính đa hình có lẽ là ý tưởng chính đằng sau việc sử dụng tốt Python.interfaces (operations supported), not to types. Not caring about specific types means that code is automatically applicable to many of them—any object with a compatible interface will work, regardless of its specific type. Although type checking is supported—and even required, in some rare cases—you’ll see that it’s not usually the “Pythonic” way of thinking. In fact, you’ll find that polymorphism is probably the key idea behind using Python well.

Các lớp do người dùng xác định

Chúng tôi sẽ nghiên cứu lập trình hướng đối tượng trong Python, một tính năng tùy chọn nhưng mạnh mẽ của ngôn ngữ cắt giảm thời gian phát triển bằng cách hỗ trợ lập trình bằng cách tùy chỉnh chiều sâu sau này trong cuốn sách này. Mặc dù vậy, trong các thuật ngữ trừu tượng, các lớp xác định các loại đối tượng mới mở rộng bộ cốt lõi, vì vậy chúng xứng đáng với một cái nhìn thoáng qua ở đây. Ví dụ, nói rằng bạn muốn có một loại đối tượng mô hình hóa nhân viên. Mặc dù không có loại cốt lõi cụ thể như vậy trong Python, lớp do người dùng xác định sau đây có thể phù hợp với hóa đơn:

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S = 'Spam' >>> len(S)# Length 4 >>> S[0]# The first item in S, indexing by zero-based position 'S' >>> S[1]# The second item from the left 'p'
2

Lớp này xác định một loại đối tượng mới sẽ có các thuộc tính

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
51 và
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
52 (đôi khi được gọi là thông tin trạng thái), cũng như hai bit hành vi được mã hóa như các hàm (thường được gọi là phương thức). Gọi lớp giống như một hàm tạo ra các phiên bản thuộc loại mới của chúng tôi và các phương thức lớp lớp tự động nhận được thể hiện được xử lý bằng một cuộc gọi phương thức đã cho (trong đối số
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
53):state information), as well as two bits of behavior coded as functions (normally called methods). Calling the class like a function generates instances of our new type, and the class’ methods automatically receive the instance being processed by a given method call (in the
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
53 argument):

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S = 'Spam' >>> len(S)# Length 4 >>> S[0]# The first item in S, indexing by zero-based position 'S' >>> S[1]# The second item from the left 'p'
3

Đối tượng của bản thân ngụ ý là lý do tại sao chúng ta gọi đây là mô hình hướng đối tượng: luôn có một chủ thể ngụ ý trong các chức năng trong một lớp. Tuy nhiên, theo một nghĩa nào đó, loại dựa trên lớp chỉ đơn giản là xây dựng và sử dụng các loại lõi, một đối tượng

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
54 do người dùng xác định ở đây, ví dụ, chỉ là một tập hợp của một chuỗi và số (
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
51 và
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
52, tương ứng), cộng với các chức năng cho các chức năng cho Xử lý hai đối tượng tích hợp đó.

Câu chuyện lớn hơn về các lớp học là cơ chế kế thừa của họ hỗ trợ các hệ thống phân cấp phần mềm cho vay để tùy biến bằng cách mở rộng. Chúng tôi mở rộng phần mềm bằng cách viết các lớp mới, không phải bằng cách thay đổi những gì đã hoạt động. Bạn cũng nên biết rằng các lớp là một tính năng tùy chọn của Python và các loại tích hợp đơn giản hơn như danh sách và từ điển thường là các công cụ tốt hơn so với các lớp được mã hóa người dùng. Tuy nhiên, đây là tất cả vượt quá giới hạn của hướng dẫn kiểu đối tượng giới thiệu của chúng tôi, vì vậy, đối với câu chuyện đó, bạn sẽ phải đọc một chương sau.

Và mọi thứ khác

Như đã đề cập trước đó, mọi thứ bạn có thể xử lý trong tập lệnh Python là một loại đối tượng, vì vậy tour du lịch loại đối tượng của chúng tôi nhất thiết phải không đầy đủ. Tuy nhiên, mặc dù mọi thứ trong Python là một đối tượng của người Viking, nhưng chỉ có những loại đối tượng mà chúng tôi đã gặp cho đến nay được coi là một phần của bộ loại cốt lõi của Python. Các loại đối tượng khác trong Python thường được thực hiện bởi các hàm mô -đun, không phải cú pháp ngôn ngữ. Họ cũng có xu hướng có các vai trò cụ thể của ứng dụng Các mẫu văn bản, giao diện cơ sở dữ liệu, kết nối mạng, v.v.

Hơn nữa, hãy nhớ rằng các đối tượng mà chúng tôi đã gặp ở đây là các đối tượng, nhưng không nhất thiết phải hướng đến đối tượng, một khái niệm thường yêu cầu thừa kế và tuyên bố Python

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
57, mà chúng tôi sẽ gặp lại sau trong cuốn sách này. Tuy nhiên, các đối tượng cốt lõi của Python, là những con ngựa của hầu hết mọi kịch bản Python mà bạn có thể gặp, và chúng thường là cơ sở của các loại không lớn hơn.object-oriented—a concept that usually requires inheritance and the Python
Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
57 statement, which we’ll meet again later in this book. Still, Python’s core objects are the workhorses of almost every Python script you’re likely to meet, and they usually are the basis of larger noncore types.

Tóm tắt chương

Và đó là một gói cho tour du lịch loại dữ liệu ngắn gọn của chúng tôi. Chương này đã đưa ra một giới thiệu ngắn gọn về các loại đối tượng cốt lõi của Python, và các loại hoạt động chúng ta có thể áp dụng cho chúng. Chúng tôi đã nghiên cứu các hoạt động chung hoạt động trên nhiều loại đối tượng (ví dụ như các hoạt động trình tự như lập chỉ mục và cắt lát), cũng như các hoạt động cụ thể loại có sẵn dưới dạng các cuộc gọi phương thức (ví dụ, phân tách chuỗi và bổ sung danh sách). Chúng tôi cũng đã xác định một số thuật ngữ chính trên đường đi, chẳng hạn như tính bất biến, trình tự và đa hình.

Trên đường đi, chúng tôi đã thấy rằng các loại đối tượng cốt lõi của Python linh hoạt và mạnh mẽ hơn so với những gì có sẵn trong các ngôn ngữ cấp thấp hơn như C. Ví dụ, danh sách và từ điển làm giảm hầu hết các công việc bạn làm để hỗ trợ các bộ sưu tập và tìm kiếm Ngôn ngữ cấp thấp hơn. Danh sách được sắp xếp các bộ sưu tập của các đối tượng khác và từ điển là các bộ sưu tập của các đối tượng khác được lập chỉ mục bởi khóa thay vì theo vị trí. Cả từ điển và danh sách có thể được lồng, có thể phát triển và thu nhỏ theo yêu cầu và có thể chứa các đối tượng thuộc bất kỳ loại nào. Hơn nữa, không gian của họ được tự động làm sạch khi bạn đi.

Tôi đã bỏ qua hầu hết các chi tiết ở đây để cung cấp một tour du lịch nhanh, vì vậy bạn không nên mong đợi tất cả các chương này đã có ý nghĩa. Trong một vài chương tiếp theo, chúng tôi sẽ bắt đầu đào sâu hơn, điền vào chi tiết về các loại đối tượng cốt lõi của Python, được bỏ qua ở đây để bạn có thể hiểu đầy đủ hơn. Chúng tôi sẽ bắt đầu trong chương tiếp theo với cái nhìn sâu sắc về các số Python. Đầu tiên, mặc dù, một bài kiểm tra khác để xem xét.

Trình tạo não

1. Câu đố chương

Chúng tôi sẽ khám phá các khái niệm được giới thiệu trong chương này chi tiết hơn trong các chương sắp tới, vì vậy chúng tôi sẽ chỉ đề cập đến những ý tưởng lớn ở đây:

Q:

Kể tên bốn loại dữ liệu cốt lõi của Python.

Q:

Tại sao chúng được gọi là các loại dữ liệu cốt lõi của Lõi?

Q:

Có nghĩa là gì, và ba loại cốt lõi của Python, được coi là bất biến?

Q:

Trình tự của người Viking có nghĩa là gì, và ba loại nào rơi vào danh mục đó?

Q:

Ánh xạ của người Viking có nghĩa là gì và loại lõi nào là một ánh xạ?

Q:

Tính đa hình của người Viking là gì, và tại sao bạn nên quan tâm?

2. Câu trả lời câu hỏi

Q:

A:

Số, chuỗi, danh sách, từ điển, bộ dữ liệu và tệp thường được coi là loại đối tượng cốt lõi (dữ liệu). Các bộ, loại,

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S[-1]# The last item from the end in S 'm' >>> S[-2]# The second to last item from the end 'a'
5 và Booleans đôi khi cũng được phân loại theo cách này. Có nhiều loại số (số nguyên, dài, điểm nổi và thập phân) và hai loại chuỗi (bình thường và unicode).

Q:

A:

Chúng được gọi là các loại cốt lõi của người Hồi giáo vì chúng là một phần của chính ngôn ngữ Python và luôn có sẵn; Để tạo các đối tượng khác, bạn thường phải gọi các hàm trong các mô -đun đã nhập. Hầu hết các loại lõi đều có cú pháp cụ thể để tạo các đối tượng: ________ 159, ________ 160 Ví dụ, là một biểu thức tạo ra một chuỗi và xác định tập hợp các hoạt động có thể được áp dụng cho nó. Bởi vì điều này, các loại cốt lõi được làm cứng vào cú pháp Python. Ngược lại, bạn phải gọi hàm

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> 123 + 222# Integer addition 345 >>> 1.5 * 4# Floating-point multiplication 6.0 >>> 2 ** 100# 2 to the power 100 1267650600228229401496703205376L
37 tích hợp để tạo đối tượng tệp.

Q:

A:

Một đối tượng bất biến của người Viking là một đối tượng không thể thay đổi sau khi nó được tạo ra. Số, chuỗi và bộ dữ liệu trong Python rơi vào thể loại này. Mặc dù bạn không thể thay đổi một đối tượng bất biến tại chỗ, bạn luôn có thể tạo một đối tượng mới bằng cách chạy một biểu thức.

Q:

A:

Một trình tự của người Viking là một bộ sưu tập các đối tượng được đặt hàng theo vị trí. Chuỗi, danh sách và bộ dữ liệu đều là tất cả các chuỗi trong Python. Họ chia sẻ các hoạt động trình tự chung, chẳng hạn như lập chỉ mục, nối và cắt, nhưng cũng có các cuộc gọi phương thức cụ thể loại.

Q:

A:

Thuật ngữ ánh xạ của người Viking biểu thị một đối tượng ánh xạ các phím đến các giá trị liên quan. Từ điển Python sườn là loại ánh xạ duy nhất trong bộ loại lõi. Ánh xạ không duy trì bất kỳ thứ tự vị trí từ trái sang phải; Chúng hỗ trợ quyền truy cập vào dữ liệu được lưu trữ bởi khóa, cộng với các cuộc gọi phương thức cụ thể loại.

Q:

A:

Tính đa hình của người Viking có nghĩa là ý nghĩa của một hoạt động (như

Hướng dẫn what are the two object types in python? - hai loại đối tượng trong python là gì?
>>> S[-1]# The last item from the end in S 'm' >>> S[-2]# The second to last item from the end 'a'
6) phụ thuộc vào các đối tượng đang được vận hành. Điều này hóa ra là một ý tưởng chính (có lẽ là ý tưởng chính) đằng sau việc sử dụng Python Well, không ràng buộc mã với các loại cụ thể khiến mã đó tự động áp dụng cho nhiều loại.the key idea) behind using Python well—not constraining code to specific types makes that code automatically applicable to many types.