Hướng dẫn what are inbuilt types available in python? - những loại sẵn có trong python là gì?
Chương này là từ cuốn sách Show
Các loại tích hợpKhoảng hai chục loại được tích hợp vào phiên dịch Python và được nhóm thành một vài loại chính, như trong Bảng 3.1. Cột tên loại trong bảng liệt kê tên có thể được sử dụng để kiểm tra loại đó bằng isInstance () và các hàm liên quan đến loại khác. Các loại bao gồm các đối tượng quen thuộc như số và trình tự. Những người khác được sử dụng trong quá trình thực hiện chương trình và ít được sử dụng thực tế cho hầu hết các lập trình viên. Một vài phần tiếp theo mô tả các loại tích hợp được sử dụng phổ biến nhất. Bảng 3.1 Các loại Python tích hợp
Nội bộ Mã biên dịch byteKhung thực thi Đối tượng máy phátStacks TraceBack of a Exception Được tạo ra bởi các lát cắt mở rộng Được sử dụng trong các lát mở rộng Các lớp học cổ điển Định nghĩa lớp kiểu cũ Ví dụ lớp kiểu cũLưu ý rằng đối tượng và loại xuất hiện hai lần trong Bảng 3.1 vì các lớp và loại đều có thể gọi được. Các loại được liệt kê cho "các lớp cổ điển" đề cập đến một giao diện hướng đối tượng đã lỗi thời, nhưng vẫn hỗ trợ. Thông tin chi tiết về điều này có thể được tìm thấy sau trong chương này và trong Chương 7, "Các lớp và lập trình hướng đối tượng." Table 3.2 shows the operators and methods that you can apply to all sequence types. Element i of sequence s is selected using the indexing operator s[i], and subsequences are selected using the slicing operator s[i:j] or extended slicing operator s[i:j:stride] (these operations are described in Chapter 4). The length of any sequence is returned using the built-in len(s) function. You can find the minimum and maximum values of a sequence by using the built-in min(s) and max(s) functions. However, these functions only work for sequences in which the elements can be ordered (typically numbers and strings). Table 3.3 shows the additional operators that can be applied to mutable sequences such as lists. Table 3.2 Operations and Methods Applicable to All Sequences
Table 3.3 Operations Applicable to Mutable Sequences
Additionally, lists support the methods shown in Table 3.4. The built-in function list(s) converts any iterable type to a list. If s is already a list, this function constructs a new list that’s a shallow copy of s. The s.append(x) method appends a new element, x, to the end of the list. The s.index(x) method searches the list for the first occurrence of x. If no such element is found, a ValueError exception is raised. Similarly, the s.remove(x) method removes the first occurrence of x from the list. The s.extend(t) method extends the list s by appending the elements in sequence t. The s.sort() method sorts the elements of a list and optionally accepts a comparison function, key function, and reverse flag. The comparison function should take two arguments and return negative, zero, or positive, depending on whether the first argument is smaller, equal to, or larger than the second argument, respectively. The key function is a function that is applied to each element prior to comparison during sorting. Specifying a key function is useful if you want to perform special kinds of sorting operations, such as sorting a list of strings, but with case insensitivity. The s.reverse() method reverses the order of the items in the list. Both the sort() and reverse() methods operate on the list elements in place and return None. Table 3.4 List Methods
Python provides two string object types. Standard strings are sequences of bytes containing 8-bit data. They may contain binary data and embedded NULL bytes. Unicode strings are sequences of 16-bit characters encoded in a format known as UCS-2. This allows for 65,536 unique character values. Although the latest Unicode standard supports up to 1 million unique character values, these extra characters are not supported by Python by default. Instead, they must be encoded as a special two-character (4-byte) sequence known as a surrogate pair—the interpretation of which is up to the application. Python does not check data for Unicode compliance or the proper use of surrogates. As an optional feature, Python may be built to store Unicode strings using 32-bit integers (UCS-4). When enabled, this allows Python to represent the entire range of Unicode values from U+000000 to U+110000. All Unicode-related functions are adjusted accordingly. Both standard and Unicode strings support the methods shown in Table 3.5. Although these methods operate on string instances, none of these methods actually modifies the underlying string data. Thus, methods such as s.capitalize(),s.center(), and s.expandtabs() always return a new string as opposed to modifying the string s. Character tests such as s.isalnum() and s.isupper() return True or False if all the characters in the string s satisfy the test. Furthermore, these tests always return False if the length of the string is zero. The s.find(), s.index(), s.rfind(), and s.rindex() methods are used to search s for a substring. All these functions return an integer index to the substring in s. In addition, the find() method returns -1 if the substring isn’t found, whereas the index() method raises a ValueError exception. Many of the string methods accept optional start and end parameters, which are integer values specifying the starting and ending indices in s. In most cases, these values may given negative values, in which case the index is taken from the end of the string. The s.translate() method is used to perform character substitutions. The s.encode() and s.decode() methods are used to transform the string data to and from a specified character encoding. As input it accepts an encoding name such as ‘ascii’, ‘utf-8’, or ‘utf-16’. This method is most commonly used to convert Unicode strings into a data encoding suitable for I/O operations and is described further in Chapter 9, "Input and Output." More details about string methods can be found in the documentation for the string module. Bảng 3.5 Phương pháp chuỗi
Vì có hai loại chuỗi khác nhau, Python cung cấp một loại trừu tượng, basestring, có thể được sử dụng để kiểm tra xem một đối tượng là bất kỳ loại chuỗi nào. Đây là một ví dụ: if isinstance(s,basestring): print "is some kind of string" Phạm vi chức năng tích hợp ([i,] j [, sải bước]) xây dựng một danh sách và điền nó với các số nguyên k sao cho tôi Loại ánh xạMột đối tượng ánh xạ đại diện cho một bộ sưu tập các đối tượng tùy ý được lập chỉ mục bởi một bộ sưu tập khác của các giá trị khóa gần như tùy ý. Không giống như một chuỗi, một đối tượng ánh xạ không được đặt hàng và có thể được lập chỉ mục bởi các số, chuỗi và các đối tượng khác. Ánh xạ là có thể thay đổi. Từ điển là loại ánh xạ tích hợp duy nhất và là phiên bản Python của một bảng băm hoặc mảng kết hợp. Bạn có thể sử dụng bất kỳ đối tượng bất biến nào làm giá trị khóa từ điển (chuỗi, số, bộ dữ liệu, v.v.). Danh sách, từ điển và các bộ dữ liệu chứa các đối tượng có thể thay đổi không thể được sử dụng làm khóa (loại từ điển yêu cầu các giá trị khóa để duy trì không đổi). Để chọn một mục trong một đối tượng ánh xạ, hãy sử dụng toán tử chỉ mục chính m [k], trong đó k là giá trị chính. Nếu không tìm thấy chìa khóa, ngoại lệ KeyError sẽ được nâng lên. Hàm Len (M) trả về số lượng các mục có trong một đối tượng ánh xạ. Bảng 3.6 liệt kê các phương pháp và hoạt động. Bảng 3.6 Phương pháp và hoạt động cho từ điển
Phương thức M.Clear () loại bỏ tất cả các mục. Phương thức M.copy () tạo ra một bản sao nông của các mục có trong một đối tượng ánh xạ và đặt chúng vào một đối tượng ánh xạ mới. Phương thức M.Items () trả về một danh sách chứa (khóa, giá trị). Phương thức M.Keys () trả về một danh sách với tất cả các giá trị chính và phương thức M.Values () trả về một danh sách với tất cả các đối tượng. Phương thức M.Update (b) cập nhật đối tượng ánh xạ hiện tại bằng cách chèn tất cả các cặp (khóa, giá trị) được tìm thấy trong đối tượng ánh xạ b. Phương thức M.Get (K [, V]) lấy một đối tượng, nhưng cho phép giá trị mặc định tùy chọn, V, mà đã trả về nếu không có đối tượng như vậy tồn tại. Phương thức M.setDefault (K [, V]) tương tự như M.Get (), ngoại trừ việc trả về V nếu không có đối tượng nào tồn tại, nó sẽ đặt m [k] = v. Nếu v bị bỏ qua, nó mặc định là mặc định là Không có. Phương thức M.pop () trả về một mục từ một từ điển và loại bỏ nó cùng một lúc. Phương thức m.popitem () được sử dụng để phá hủy lặp đi lặp lại các nội dung của từ điển. Các m.iteritems (), m.iterkeys () và m.itervalues () trả về các trình lặp lại cho phép lặp trên tất cả các mục từ điển, khóa hoặc giá trị, tương ứng. Đặt loạiMột bộ là một bộ sưu tập không có thứ tự của các mặt hàng độc đáo. Không giống như các chuỗi, các bộ không cung cấp các hoạt động lập chỉ mục hoặc cắt. Chúng cũng không giống như từ điển ở chỗ không có giá trị chính liên quan đến các đối tượng. Ngoài ra, các mục được đặt vào một bộ phải là bất biến. Hai loại bộ khác nhau có sẵn: bộ là một bộ có thể thay đổi và Frozenset là một bộ bất biến. Cả hai loại bộ được tạo bằng cách sử dụng một cặp chức năng tích hợp: s = set([1,5,10,15]) f = frozenset([‘a’,37,’hello’]) Cả Set () và Frozenset () đều tập hợp tập hợp bằng cách lặp lại đối số được cung cấp. Cả hai loại bộ cung cấp các phương thức được nêu trong Bảng 3.7 Bảng 3.7 Phương pháp và hoạt động cho các loại bộ
Các s.diferference (t), s.interection (t), s.symmetric_difference (t) và s.union (t) cung cấp các hoạt động toán học tiêu chuẩn trên các bộ. Giá trị trả về có cùng loại với S (SET hoặc FROZENSET). Tham số T có thể là bất kỳ đối tượng Python hỗ trợ lặp lại. Điều này bao gồm các bộ, danh sách, bộ dữ liệu và chuỗi. Các hoạt động được thiết lập này cũng có sẵn dưới dạng toán tử toán học, như được mô tả thêm trong Chương 4. Các bộ có thể thay đổi (đặt) Ngoài ra, cung cấp các phương thức được nêu trong Bảng 3.8. Bảng 3.8 Phương pháp cho các loại bộ có thể thay đổi
Các bộ có thể thay đổi (đặt) Ngoài ra, cung cấp các phương thức được nêu trong Bảng 3.8. Bảng 3.8 Phương pháp cho các loại bộ có thể thay đổiThêm mục vào s. Không có tác dụng nếu mục đã có trong s. Loại bỏ tất cả các mục từ s. def foo(x,y): return x+y class A(object): @staticmethod def foo(x,y): return x+y bar = lambda x,y: x + y Loại bỏ tất cả các mục từ s cũng có trong t.
Các phương thức là các chức năng chỉ hoạt động trên các trường hợp của một đối tượng. Hai loại phương thức Phương pháp và phương thức lớp học và phương thức lớp được xác định bên trong định nghĩa lớp, như được hiển thị ở đây: class Foo(object): def __init__(self): self.items = [ ] def update(self, x): self.items.append(x) @classmethod def whatami(cls): return cls Phương thức thể hiện là một phương thức hoạt động trên một thể hiện của một đối tượng. Trường hợp được chuyển đến phương thức như là đối số đầu tiên, được gọi là bản thân theo quy ước. Đây là một ví dụ: f = Foo() f.update(2) # update() method is applied to the object f Một phương thức lớp hoạt động trên chính lớp. Đối tượng lớp được chuyển đến một phương thức lớp trong đối số đầu tiên, CLS. Đây là một ví dụ: Foo.whatami() # Operates on the class Foo f.whatami() # Operates on the class of f (Foo) Đối tượng Phương thức ràng buộc là một phương thức được liên kết với một thể hiện đối tượng cụ thể. Đây là một ví dụ: a = f.update # a is a method bound to f b = Foo.whatami # b is method bound to Foo (classmethod) Trong ví dụ này, các đối tượng A và B có thể được gọi giống như một hàm. Khi được gọi, chúng sẽ tự động áp dụng cho đối tượng bên dưới mà chúng bị ràng buộc. Đây là một ví dụ: a(4) # Calls f.update(4) b() # Calls Foo.whatami() Các phương thức ràng buộc và không liên kết không quá một trình bao bọc mỏng xung quanh một đối tượng hàm thông thường. Các thuộc tính sau được xác định cho các đối tượng Phương thức:
Cho đến nay, cuộc thảo luận này đã tập trung vào các chức năng và phương pháp, nhưng các đối tượng lớp (được mô tả ngắn gọn) cũng có thể gọi được. Khi một lớp được gọi, một thể hiện lớp mới được tạo. Ngoài ra, nếu lớp định nghĩa một phương thức __init __ (), thì nó được gọi để khởi tạo thể hiện mới được tạo. Một thể hiện đối tượng cũng có thể gọi được nếu nó định nghĩa một phương thức đặc biệt, __call __ (). Nếu phương thức này được xác định cho một thể hiện, x, thì x (args) sẽ gọi phương thức x .__ gọi __ (args). Các loại đối tượng có thể gọi cuối cùng là các hàm và phương thức tích hợp, tương ứng với mã được viết trong các mô-đun mở rộng và thường được viết bằng C hoặc C ++. Các thuộc tính sau đây có sẵn cho các phương thức tích hợp:
Đối tượng chức năng thực hiện phương thức Ví dụ được liên kết với phương thức (không có nếu không liên kết) Cho đến nay, cuộc thảo luận này đã tập trung vào các chức năng và phương pháp, nhưng các đối tượng lớp (được mô tả ngắn gọn) cũng có thể gọi được. Khi một lớp được gọi, một thể hiện lớp mới được tạo. Ngoài ra, nếu lớp định nghĩa một phương thức __init __ (), thì nó được gọi để khởi tạo thể hiện mới được tạo.Một thể hiện đối tượng cũng có thể gọi được nếu nó định nghĩa một phương thức đặc biệt, __call __ (). Nếu phương thức này được xác định cho một thể hiện, x, thì x (args) sẽ gọi phương thức x .__ gọi __ (args). >>> class Foo(object): ... pass ... >>> type(Foo) Các loại đối tượng có thể gọi cuối cùng là các hàm và phương thức tích hợp, tương ứng với mã được viết trong các mô-đun mở rộng và thường được viết bằng C hoặc C ++. Các thuộc tính sau đây có sẵn cho các phương thức tích hợp: >>> f = Foo() >>> type(f) Tên chức năng/Phương thức Ví dụ được liên kết với phương phápĐối với các chức năng tích hợp như Len (), __Self được đặt thành không có, cho thấy rằng hàm không bị ràng buộc với bất kỳ đối tượng cụ thể nào. Đối với các phương thức tích hợp như X.Append (), trong đó X là đối tượng danh sách, __Self được đặt thành x.
Một thể hiện đối tượng cũng có thể gọi được nếu nó định nghĩa một phương thức đặc biệt, __call __ (). Nếu phương thức này được xác định cho một thể hiện, x, thì x (args) sẽ gọi phương thức x .__ gọi __ (args).Các loại đối tượng có thể gọi cuối cùng là các hàm và phương thức tích hợp, tương ứng với mã được viết trong các mô-đun mở rộng và thường được viết bằng C hoặc C ++. Các thuộc tính sau đây có sẵn cho các phương thức tích hợp: Các loại nội bộMột số đối tượng được thông dịch viên sử dụng được tiếp xúc với người dùng. Chúng bao gồm các đối tượng Traceback, đối tượng mã, đối tượng khung, đối tượng máy phát, đối tượng lát cắt và đối tượng Ellipsis. Nó hiếm khi cần thiết để điều khiển các đối tượng này trực tiếp. Tuy nhiên, các thuộc tính của chúng được cung cấp trong các phần sau để hoàn thiện. Đối tượng mãCác đối tượng mã biểu thị mã thực thi có thể thực thi byte thô hoặc mã byte và thường được trả về bởi hàm compile () tích hợp. Các đối tượng mã tương tự như các chức năng ngoại trừ việc chúng không chứa bất kỳ ngữ cảnh nào liên quan đến không gian tên trong đó mã được xác định, cũng như các đối tượng mã lưu trữ thông tin về các giá trị đối số mặc định. Một đối tượng mã, C, có các thuộc tính chỉ đọc sau:
Đối tượng khungCác đối tượng khung được sử dụng để biểu diễn các khung thực thi và thường xuyên nhất xảy ra trong các đối tượng Traceback (được mô tả tiếp theo). Một đối tượng khung, F, có các thuộc tính chỉ đọc sau:
Tuple chứa tên được sử dụng bởi mã byte.
Tuple chứa tên của các biến được tham chiếu bởi các hàm lồng nhau.Tuple chứa tên của các biến miễn phí được sử dụng bởi các hàm lồng nhau.
Tuple chứa tên của các biến được tham chiếu bởi các hàm lồng nhau.Tuple chứa tên của các biến miễn phí được sử dụng bởi các hàm lồng nhau.
Tuple chứa tên của các biến cục bộ.Tuple chứa tên của các biến được tham chiếu bởi các hàm lồng nhau.
Tuple chứa tên được sử dụng bởi mã byte. s = set([1,5,10,15]) f = frozenset([‘a’,37,’hello’])0 Đối tượng EllipsisĐối tượng Ellipsis được sử dụng để chỉ ra sự hiện diện của dấu chấm lửng (...) trong một lát cắt. Có một đối tượng duy nhất của loại này, được truy cập thông qua Ellipsis tên tích hợp. Nó không có thuộc tính và đánh giá là đúng. Không có loại tích hợp nào của Python, sử dụng dấu chấm lửng, nhưng nó có thể được sử dụng trong các ứng dụng của bên thứ ba. Các lớp học cổ điểnTrong các phiên bản của Python trước phiên bản 2.2, các lớp và đối tượng đã được triển khai bằng cách sử dụng một cơ chế hoàn toàn khác mà hiện không được chấp nhận. Tuy nhiên, đối với khả năng tương thích ngược, các lớp này, được gọi là các lớp cổ điển hoặc các lớp kiểu cũ, vẫn được hỗ trợ. Lý do mà các lớp cổ điển không được chấp nhận là do sự tương tác của chúng với hệ thống loại Python. Các lớp cổ điển không xác định các loại dữ liệu mới, cũng không thể chuyên về bất kỳ loại tích hợp nào như danh sách hoặc từ điển. Để khắc phục giới hạn này, Python 2.2 Các loại và lớp hợp nhất trong khi giới thiệu một triển khai khác nhau của các lớp do người dùng xác định. Một lớp cổ điển được tạo bất cứ khi nào một đối tượng không kế thừa (trực tiếp hoặc gián tiếp) từ đối tượng. Ví dụ: s = set([1,5,10,15]) f = frozenset([‘a’,37,’hello’])1 Các lớp cổ điển được triển khai bằng cách sử dụng từ điển chứa tất cả các đối tượng được xác định trong lớp và xác định một không gian tên. Các tham chiếu đến các thuộc tính lớp như C.X được dịch thành Tra cứu từ điển, c .__ Dict __ ["x"]. Nếu một thuộc tính được tìm thấy trong từ điển này, việc tìm kiếm sẽ tiếp tục trong danh sách các lớp cơ sở. Tìm kiếm này là độ sâu đầu tiên theo thứ tự các lớp cơ sở được chỉ định trong định nghĩa lớp. Một gán thuộc tính như C.Y = 5 luôn cập nhật thuộc tính __dict__ của C, không phải là từ điển của bất kỳ lớp cơ sở nào. Các thuộc tính sau được xác định bởi các đối tượng lớp:
Một thể hiện lớp là một đối tượng được tạo bằng cách gọi một đối tượng lớp. Mỗi trường hợp có không gian tên địa phương riêng được thực hiện như một từ điển. Từ điển này và đối tượng lớp liên quan có các thuộc tính sau:
Tên của lớp Những gì được xây dựngCác loại dữ liệu tích hợp trong Python.. Các loại nhị phân: MemoryView, bytearray, byte .. Loại Boolean: Bool .. Đặt loại: Frozenset, đặt .. Loại lập bản đồ: Dict .. Các loại trình tự: Phạm vi, Tuple, Danh sách .. Các loại số: phức tạp, nổi, int .. Loại văn bản: str .. 5 loại dữ liệu có sẵn trong Python là gì?Python có năm loại dữ liệu tiêu chuẩn:.. Numbers.. String.. Tuple.. Dictionary.. Chức năng sẵn có ở Python là gì?Các hàm tích hợp Python được định nghĩa là các chức năng có chức năng được xác định trước trong Python.Trình thông dịch Python có một số chức năng luôn có mặt để sử dụng.Các chức năng này được gọi là các chức năng tích hợp.
4 loại dữ liệu trong Python là gì?Các giá trị số nguyên, phao và phức tạp thuộc loại dữ liệu số Python.Python cung cấp hàm loại () để biết loại dữ liệu của biến. |