Computer >> Máy Tính >  >> Lập trình >> Python

Python isinstance:Hướng dẫn từng bước

The isinstance() Hàm trong Python trả về true hoặc false nếu một biến khớp với kiểu dữ liệu được chỉ định. Cú pháp cho isinstance() trong Python là isinstance(variable_to_check, data_type) .

Kiểm tra kiểu dữ liệu của một giá trị cụ thể là một thao tác phổ biến trong lập trình. Ví dụ:bạn có thể muốn kiểm tra xem giá trị bạn đã lưu trữ trong một biến là một chuỗi hay một số vì mỗi kiểu dữ liệu này hoạt động khác nhau trong mã.

Đó là nơi mà isinstance() chức năng có thể hữu ích. isinstance() là một phương pháp Python tích hợp cho phép bạn xác minh kiểu dữ liệu của một giá trị cụ thể. Ví dụ:bạn có thể sử dụng isinstance() để kiểm tra xem một giá trị là một chuỗi hay một danh sách.

Hướng dẫn này sẽ hướng dẫn bạn cách sử dụng isinstance() bằng Python và sẽ cung cấp một vài ví dụ để giúp bạn hiểu rõ hơn về nó.

Tổng quan về sự hỗ trợ của Python

Khi bạn viết mã bằng Python, bạn sử dụng nhiều loại dữ liệu khác nhau. Các kiểu dữ liệu này bao gồm chuỗi, số, danh sách, bộ dữ liệu và từ điển. Mọi kiểu dữ liệu đều có bộ quy tắc riêng chi phối cách dữ liệu đó được lưu trữ và thao tác. Ví dụ:khi sử dụng Python, bạn có thể thực hiện các phép tính toán học trên số nhưng không phải trên chuỗi.

Do đó, điều quan trọng là bạn đang làm việc với các loại dữ liệu phù hợp trong chương trình của mình. Bạn có thể sử dụng isinstance trong Python để xác minh rằng dữ liệu bạn đang làm việc được lưu trữ dưới dạng kiểu dữ liệu thích hợp. Khi sử dụng Python, hãy kiểm tra các kiểu dữ liệu nếu cần.

isinstance() là một hàm được tích hợp trong Python để kiểm tra xem một giá trị có được lưu trữ dưới dạng một kiểu dữ liệu cụ thể hay không. Không giống như type() phương thức được thảo luận sau trong bài viết này, isinstance() phương thức chỉ trả về True hoặc False , tùy thuộc vào việc giá trị bạn đang kiểm tra có được lưu trữ dưới dạng kiểu dữ liệu hoặc các kiểu bạn chỉ định hay không.

Cú pháp cho isinstance() như sau:

81% người tham gia cho biết họ cảm thấy tự tin hơn về triển vọng công việc công nghệ của mình sau khi tham gia một cuộc thi đào tạo. Kết hợp với bootcamp ngay hôm nay.

Sinh viên tốt nghiệp bootcamp trung bình dành ít hơn sáu tháng để chuyển đổi nghề nghiệp, từ khi bắt đầu bootcamp đến khi tìm được công việc đầu tiên của họ.

isinstance(object, data_types)

isinstance() phương thức nhận hai tham số, cả hai đều là bắt buộc:

  • đối tượng :đối tượng có kiểu dữ liệu bạn muốn kiểm tra.
  • data_types :ít nhất một trong các kiểu dữ liệu có thể có của đối tượng.

isinstance() sau đó so sánh đối tượng với (các) kiểu dữ liệu bạn đã chỉ định. Nếu bạn muốn so sánh đối tượng với hai hoặc nhiều kiểu dữ liệu, bạn sẽ cần chỉ định một bộ làm thông số data_types.

Đáp lại, mã của bạn trả về True hoặc False . Mã trả về True nếu đối tượng thuộc kiểu dữ liệu (hoặc một trong các kiểu dữ liệu) bạn chỉ định và False nếu không.

Về cơ bản, khi bạn sử dụng isinstance trong Python, bạn đang trình bày mã của mình với một câu lệnh điền vào chỗ trống và ít nhất một lựa chọn câu trả lời. Câu lệnh của bạn là:This object is a (data type) . Việc chỉ định tham số kiểu dữ liệu sẽ hoàn thành câu lệnh đó. Hai ví dụ là:

  • 12 là một con số.
  • books là một con số.

Đáp lại, mã của bạn trả về True hoặc False .

Các ví dụ về isinstance của Python

Hãy xem qua hai ví dụ để cho thấy cách bạn có thể sử dụng isinstance() trong mã của bạn. Giả sử rằng chúng tôi có một giá trị và chúng tôi muốn xác minh rằng giá trị đó là một chuỗi. Chúng tôi có thể sử dụng isinstance() để làm điều này. Đây là mã chúng tôi có thể sử dụng:

print(isinstance("String", str))

Mã của chúng tôi thực hiện kiểm tra kiểu và sau đó hàm của chúng tôi trả về:True .

Bởi vì String thực sự là một chuỗi (str là cách bạn tham chiếu đến kiểu dữ liệu string bằng Python) chương trình của chúng tôi trả về True .

Bây giờ chúng ta sẽ khám phá một ví dụ chi tiết hơn.

Giả sử rằng chúng tôi đang xây dựng một trò chơi nhân cho lớp hai. Trò chơi của chúng tôi trình bày cho người dùng một bài toán và sau đó nó sẽ kiểm tra câu trả lời của người dùng để xem chúng có đúng hay không. Để chương trình của chúng tôi hoạt động, chúng tôi cần đảm bảo rằng người dùng đã nhập một số vào trò chơi của chúng tôi.

Để kiểm tra xem câu trả lời chúng tôi thu thập được từ người chơi có phải là một số hay không, chúng tôi có thể sử dụng mã này:

answer = 5 * 8
user_answer = input("What is 5 x 8?")

print(isinstance(user_answer, (int, float)))

Mã của chúng tôi trả về:False .

Hãy chia nhỏ chương trình của chúng ta. Trên dòng đầu tiên, chúng tôi tính toán câu trả lời cho bài toán mà chúng tôi đã trình bày cho người chơi. Trong trường hợp này, bài toán đó là:What is 5 x 8? , vì vậy chúng tôi nhập answer = 5 * 8 cho dòng đầu tiên của mã của chúng tôi.

Sau đó, chúng tôi sử dụng input() để lấy câu trả lời từ người dùng.

Trên dòng cuối cùng của mã, chúng tôi sử dụng isinstance() để kiểm tra xem câu trả lời của người dùng của chúng tôi (được lưu trữ trong user_answer ) là một số nguyên hoặc một số thực, là hai kiểu dữ liệu được sử dụng để biểu diễn các số trong Python. Chúng tôi làm điều này bằng cách tạo một bộ lưu trữ các loại dữ liệu mà chúng tôi muốn kiểm tra giá trị của mình. Trong mã của chúng tôi, bộ này là:(int, float) .

Mã của chúng tôi trả về False , cho chúng tôi biết rằng câu trả lời của người dùng không phải là số nguyên (int) cũng không phải là số thực.

Bây giờ chúng ta biết rằng đối tượng của chúng ta không phải là một thể hiện của int hoặc float, chúng ta có thể bắt đầu chẩn đoán sự cố. Mã của chúng tôi trả về False bởi vì input() cung cấp cho chúng tôi một chuỗi theo mặc định, ngay cả khi người dùng nhập một số. Vì vậy, để mã của chúng tôi hoạt động, chúng tôi cần chuyển đổi kết quả của input() phương thức thành một số nguyên. Chúng tôi có thể làm như vậy bằng cách sử dụng mã sau:

answer = 5 * 8
user_answer = int(input("What is 5 x 8?"))

print(isinstance(user_answer, (int, float)))

Bây giờ khi chúng tôi chạy mã của mình, chúng tôi nhận được:True .

Sự khác biệt duy nhất giữa ví dụ này và ví dụ trước là, trong mã này, trên user_answer dòng, chúng tôi chuyển đổi kết quả của input() phương thức thành một số nguyên bằng cách sử dụng int() . Do đó, chương trình đăng ký đầu vào là một số nguyên chứ không phải là một chuỗi. Vì vậy, khi chúng tôi kiểm tra kiểu dữ liệu của giá trị này bằng isinstance() , chương trình của chúng tôi xác minh rằng giá trị là số nguyên hoặc số thực.

Trong ví dụ trên, chúng tôi đã kiểm tra xem một đối tượng có chứa một kiểu dữ liệu tích hợp cụ thể hay không. isinstance() phương thức cũng có thể được sử dụng để so sánh một đối tượng với một lớp cụ thể.

loại so với isinstance

Nếu bạn cần kiểm tra loại giá trị trong Python, bạn có thể đã gặp phải type() phương pháp. type() là một hàm Python tích hợp có thể được sử dụng để tìm ra kiểu của một biến hoặc giá trị. Đây là cú pháp cho phương thức kiểu Python:

type(data)

Ví dụ:giả sử bạn có một số và bạn muốn kiểm tra xem nó được mã hóa bằng loại dữ liệu nào. Bạn có thể làm như vậy bằng cách sử dụng mã sau:

number = 8
print(type(number))

Mã của chúng tôi trả về:

<class 'int'>

Như bạn có thể thấy, chương trình của chúng tôi trả về loại dữ liệu của chúng tôi. Nó cho chúng tôi biết rằng dữ liệu này được lưu trữ dưới dạng số nguyên.

Có một sự khác biệt lớn giữa type()isinstance() các chức năng làm cho một chức năng thích hợp để sử dụng hơn một chức năng khác trong một số trường hợp nhất định. Nếu bạn muốn xem kiểu dữ liệu của một giá trị, hãy type() có thể thích hợp hơn. Tuy nhiên, nếu bạn muốn xác minh rằng một giá trị được lưu trữ dưới dạng một nhất định kiểu hoặc các kiểu dữ liệu — chẳng hạn như một chuỗi hoặc một float — bạn nên sử dụng isinstance() .

Kết luận

Trong Python, bạn có thể sử dụng isinstance() chức năng để xác minh xem một giá trị có chứa một kiểu dữ liệu cụ thể hay không. Ví dụ:nếu bạn muốn xác minh rằng danh sách các giá trị được lưu trữ dưới dạng danh sách hoặc nếu một số được lưu trữ dưới dạng số thực, bạn có thể sử dụng isinstance() .

Hướng dẫn Python này đã trình bày cách sử dụng isinstance() để xác minh xem một giá trị có chứa một kiểu dữ liệu nhất định hay không. Bây giờ bạn có thông tin cần thiết để sử dụng isinstance() giống như một chuyên gia Python.