Python tạo tên đối tượng từ chuỗi

Trong Python, dữ liệu có dạng đối tượng hoặc đối tượng tích hợp sẵn mà Python cung cấp hoặc đối tượng chúng tôi tạo bằng Python hoặc các công cụ ngôn ngữ bên ngoài như thư viện tiện ích mở rộng X. Bởi vì các đối tượng là khái niệm cơ bản nhất trong lập trình Python, nên chúng ta sẽ bắt đầu với các loại đối tượng tích hợp sẵn


Loại đối tượngVí dụ chữ/sáng tạoNumbers1234, 3. 1415, 3+4j, Decimal, FractionStrings'python', "Jupiter's", b'a\x01c'Lists[1, [2, 'three'], 4]Dictionaries{'Apple'. 'iPhone', 'Google'. 'Android'}Tuples{1, 'php', 3, 'Y'}FilesmyFile = open['java', 'r']Setsset['xyz'], {'x', 'y', 'z'}

Không có khai báo kiểu trong Python. Cú pháp của các biểu thức chúng tôi chạy xác định các loại đối tượng chúng tôi tạo và sử dụng. Trong Python, mỗi giá trị đều có một kiểu dữ liệu, nhưng chúng ta không cần khai báo kiểu dữ liệu của biến. Nó hoạt động như thế nào?

Tất nhiên, có nhiều loại hơn những loại trong bảng trên. Mọi thứ đều là một đối tượng trong Python, do đó, có các loại như mô-đun, hàm, lớp, phương thức, tệp và thậm chí cả mã được biên dịch

Khi chúng tôi tạo một đối tượng, chúng tôi sẽ liên kết bộ hoạt động của nó mọi lúc. Chúng ta chỉ có thể thực hiện các thao tác chuỗi trên một chuỗi và liệt kê các thao tác trên một danh sách. Python được gõ động, tuy nhiên, nó cũng được gõ mạnh, tôi. e. , chúng ta chỉ có thể thực hiện trên một đối tượng các thao tác hợp lệ cho loại của nó

Mọi thứ trong Python đều là đối tượng và mọi thứ đều có thể có thuộc tính và phương thức. Tất cả các hàm đều có thuộc tính tích hợp __doc__, trả về chuỗi tài liệu được xác định trong mã nguồn của hàm. Ví dụ: mô-đun sys là một đối tượng có thuộc tính được gọi là đường dẫn, v.v.

Đối tượng là gì?
Các ngôn ngữ lập trình khác nhau xác định đối tượng theo những cách khác nhau. Trong một số, điều đó có nghĩa là tất cả các đối tượng phải có các thuộc tính và phương thức; . Trong Python, định nghĩa lỏng lẻo hơn. Một số đối tượng không có thuộc tính cũng như phương thức, nhưng chúng có thể. Không phải tất cả các đối tượng đều có thể phân lớp. Nhưng mọi thứ đều là một đối tượng theo nghĩa là nó có thể được gán cho một biến hoặc được truyền dưới dạng đối số cho một hàm

Bạn có thể đã nghe thuật ngữ đối tượng hạng nhất trong các bối cảnh lập trình khác. Trong Python, hàm là đối tượng hạng nhất. Bạn có thể chuyển một hàm làm đối số cho một hàm khác. Các mô-đun là các đối tượng hạng nhất. Bạn có thể chuyển toàn bộ mô-đun làm đối số cho hàm. Các lớp là các đối tượng hạng nhất và các thể hiện riêng lẻ của một lớp cũng là các đối tượng hạng nhất

Điều này rất quan trọng, vì vậy tôi sẽ lặp lại nó trong trường hợp bạn bỏ lỡ vài lần đầu tiên. mọi thứ trong Python là một đối tượng. Chuỗi là đối tượng. Danh sách là đối tượng. Chức năng là đối tượng. Các lớp là các đối tượng. Các thể hiện của lớp là các đối tượng. Ngay cả các mô-đun là đối tượng

Phần này về đối tượng là từ "Dive into Python 3" của Mark Pilgrim

Trăn 3. Loại số nguyên của 0 tự động cung cấp thêm độ chính xác cho các số lớn như hình bên dưới

>>> 
>>> 2 ** 100
1267650600228229401496703205376
>>> # How many digits?
>>> len[str[2 ** 100]]
31
>>> 

Hãy chuyển sang số nổi

nhàn rỗi 2. 6. 2

>>> 
>>> # repr: as code
>>> 3.1415 *2
6.2830000000000004
>>> # str: user-friendly
>>> print[3.1415 * 2]
6.283
>>> 

Có hai cách để in mọi đối tượng. với độ chính xác đầy đủ và ở dạng thân thiện với người dùng
Hình thức đầu tiên được gọi là đối tượng dưới dạng mã repr và hình thức thứ hai là str thân thiện với người dùng của nó. Nhưng trong 3. 2, chúng tôi không thấy sự khác biệt trong đầu ra

nhàn rỗi 3. 2. a3

>>> 3.1415 * 2
6.283
>>> print[3.1415 *2]
6.283
>>> 

Có các mô-đun số hữu ích đi kèm với Python

>>> 
>>> import math
>>> math.pi
3.141592653589793
>>> math.sqrt[1000]
31.622776601683793
>>> 
>>> 
>>> import random
>>> random.random[]
0.4245390260050892
>>> random.choice[[1,2,3,4,5]]
3
>>> 

Mô-đun toán học chứa các công cụ số nâng cao dưới dạng hàm, trong khi mô-đun ngẫu nhiên thực hiện tạo số ngẫu nhiên và lựa chọn ngẫu nhiên

Chuỗi - Hoạt động trình tự

Chuỗi là tập hợp các đối tượng có thứ tự. Trình tự duy trì thứ tự từ trái sang phải giữa các mục. Các mặt hàng của họ được lưu trữ và tìm nạp theo vị trí tương đối của họ. Trên thực tế, chuỗi là chuỗi các 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

Theo trình tự, các chuỗi hỗ trợ các hoạt động giả định thứ tự theo vị trí giữa các mục. Chúng ta có thể xác minh độ dài của nó bằng hàm len 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

>>> S = 'Picasso'
>>> len[S]
7
>>> S[0]
'P'
>>> S[1]
'i'
>>> 

Chúng ta có thể lập chỉ mục ngược, từ cuối. Các chỉ số tích cực được tính từ bên trái và các chỉ số tiêu cực được tính từ bên phải

>>> S[-1]
'o'
>>> S[-2]
's'
>>> S[len[S]-1]
'o'
>>> 

Trên thực tế, một chỉ mục tiêu cực chỉ đơn giản là được thêm vào kích thước của chuỗi

Trình tự cũng hỗ trợ một hình thức lập chỉ mục tổng quát hơn được gọi là cắt. Đó là một cách để trích xuất toàn bộ phần [lát] trong một bước

>>> S
'Picasso'
>>> S[1:4]
'ica'
>>> 

Dạng tổng quát,X[I. J], có nghĩa là cung cấp cho tôi mọi thứ trong X từ phần bù I cho đến nhưng không bao gồm phần bù J. Kết quả được trả về trong một đối tượng mới. Hoạt động thứ hai cung cấp cho chúng ta tất cả các ký tự trong chuỗi S từ hiệu số 1 đến 3 [là 4-1] dưới dạng một chuỗi mới. Tác dụng là cắt hoặc phân tích hai ký tự ở giữa

Trong một lát cắt, giới hạn bên trái mặc định bằng 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

>>> 
>>> S[1:]
'icasso'
>>> # Everything past the first[1:len[S]]
>>> S[1:]
'icasso'
>>> # S itself hasn't changed
>>> S
'Picasso'
>>> # Everything but the last
>>> S[0:6]
'Picass'
>>> # Same as S[0:6]
>>> S[:6]
'Picass'
>>> # Everything but the last again, but simpler [0:-1]
>>> S[:-1]
'Picass'
>>> # All of S as a top-level copy[0:len[S]]
>>> S[:]
'Picasso'
>>> 

Là các chuỗi, các chuỗi cũng hỗ trợ nối với dấu cộng bằng cách nối hai chuỗi thành một chuỗi mới và lặp lại bằng cách tạo một chuỗi mới bằng cách lặp lại một chuỗi khác

________số 8_______

Mỗi hoạt động chuỗi tạo ra một chuỗi mới là kết quả của nó. Điều này là do các chuỗi là bất biến trong Python. Chúng không thể được thay đổi tại chỗ sau khi chúng được tạo. Chẳng hạn, chúng ta không 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 chúng ta luôn có thể tạo một chuỗi mới và gán cho nó cùng tên. Bởi vì Python dọn dẹp các đối tượng cũ khi chúng ta thực hiện, điều này không hiệu quả như nó có vẻ

>>> 
>>> S
'Picasso'
>>> 
>>> # Immutable objects cannot be changed
>>> S[0]='X'
Traceback [most recent call last]:
  File "", line 1, in 
    S[0]='X'
TypeError: 'str' object does not support item assignment
>>> #
>>> # But we can run expressions to make new objects
>>> S = 'X' + S[1:]
>>> S
'Xicasso'
>>> 

Mọi đối tượng trong Python được phân loại là bất biến hoặc không. Về các loại cốt lõi, số, chuỗi và bộ dữ liệu là không thay đổi; . 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 chúng tôi

Chuỗi - Phương thức dành riêng cho loại

Phương thức tìm chuỗi là hoạt động tìm kiếm chuỗi con cơ bản và phương thức thay thế chuỗi thực hiện tìm kiếm và thay thế toàn cục

>>> 
>>> # repr: as code
>>> 3.1415 *2
6.2830000000000004
>>> # str: user-friendly
>>> print[3.1415 * 2]
6.283
>>> 
0

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 các chuỗi dưới dạng kết quả vì chuỗi là bất biến. Các phương thức chuỗi là dòng đầu tiên của công cụ xử lý văn bản trong Python. Các phương pháp khác tách một chuỗi thành các chuỗi con trên dấu phân cách, thực hiện chuyển đổi trường hợp, kiểm tra nội dung của chuỗi và loại bỏ các ký tự khoảng trắng khỏi các đầu của chuỗi

>>> 
>>> # repr: as code
>>> 3.1415 *2
6.2830000000000004
>>> # str: user-friendly
>>> print[3.1415 * 2]
6.283
>>> 
1

Chuỗi cũng hỗ trợ thay thế nâng cao được gọi là định dạng, có sẵn dưới dạng cả biểu thức và lệnh gọi phương thức chuỗi

>>> 
>>> # repr: as code
>>> 3.1415 *2
6.2830000000000004
>>> # str: user-friendly
>>> print[3.1415 * 2]
6.283
>>> 
2

Lưu ý rằng mặc dù các hoạt động theo trình tự là chung chung, các phương thức không. Mặc dù một số loại chia sẻ một số tên phương thức, hoạt động của phương thức chuỗi thường chỉ hoạt động trên chuỗi và không có gì khác. Theo nguyên tắc thông thường, bộ công cụ của Python được phân lớp. các hoạt động chung bao gồm 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 sẵn [e. g. , len[X], X[0]]. nhưng các hoạt động dành riêng cho loại là các cuộc gọi phương thức [e. g. , một chuỗi. phía trên[]]

Để có thêm thông tin về các phương thức đối tượng, chúng ta luôn có thể gọi hàm dir tích hợp sẵn. Nó trả về một danh sách tất cả các thuộc tính có sẵn cho một đối tượng nhất định. Vì các phương thức là thuộc tính của hàm nên chúng sẽ hiển thị trong danh sách này. Giả sử S vẫn là chuỗi, đây là các thuộc tính của nó trên Python 3. 2

>>> 
>>> # repr: as code
>>> 3.1415 *2
6.2830000000000004
>>> # str: user-friendly
>>> print[3.1415 * 2]
6.283
>>> 
3

Ở đây, các tên có dấu gạch dưới trong danh sách thể hiện việc triển khai đối tượng chuỗi và có sẵn để hỗ trợ tùy chỉnh. Nói chung, dấu gạch dưới kép ở đầu và cuối là kiểu đặt tên mà Python sử dụng để triển khai chi tiết. Các tên không có dấu gạch dưới trong danh sách là các phương thức có thể gọi được trên các đối tượng chuỗi

Hàm dir chỉ đơn giản là cung cấp tên của các phương thức. Để có được thông tin về những gì họ làm, chúng ta có thể chuyển chúng đến chức năng trợ giúp

>>> 
>>> # repr: as code
>>> 3.1415 *2
6.2830000000000004
>>> # str: user-friendly
>>> print[3.1415 * 2]
6.283
>>> 
4

trợ giúp là một trong những giao diện của hệ thống mã đi kèm 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

Python cung cấp một số cách để chúng ta viết mã chuỗi. Ví dụ: các ký tự đặc biệt có thể được biểu diễn dưới dạng chuỗi thoát dấu gạch chéo ngược

>>> 
>>> # repr: as code
>>> 3.1415 *2
6.2830000000000004
>>> # str: user-friendly
>>> print[3.1415 * 2]
6.283
>>> 
5

Python cho phép các chuỗi được đặt trong các ký tự trích dẫn đơn hoặc kép. Nó cũng cho phép các chuỗi ký tự có nhiều dòng được đặt trong dấu ngoặc kép. Khi biểu mẫu này được sử dụng, tất cả các dòng được nối với nhau và các ký tự cuối dòng được thêm vào nơi xuất hiện dấu ngắt dòng. Điều này hữu ích để nhúng những thứ như mã HTML và XML vào tập lệnh Python

>>> 
>>> # repr: as code
>>> 3.1415 *2
6.2830000000000004
>>> # str: user-friendly
>>> print[3.1415 * 2]
6.283
>>> 
6

Không có hằng số đặc biệt nào trong Python. Nó là một giá trị null. Không có gì không giống như Sai. Không có không phải là 0. Không có gì không phải là một chuỗi rỗng. So sánh Không có gì khác với Không có gì sẽ luôn trả về Sai

Không có giá trị null duy nhất. Nó có kiểu dữ liệu riêng [NoneType]. Chúng ta có thể gán Không cho bất kỳ biến nào, nhưng bạn không thể tạo các đối tượng Không có Loại khác. Tất cả các biến có giá trị là Không đều bằng nhau

Chủ Đề