Hướng dẫn how do you fix a type error in python? - làm cách nào để sửa lỗi loại trong python?

TypeError là một trong số một số ngoại lệ Python tiêu chuẩn. TypeError được nâng lên bất cứ khi nào một thao tác được thực hiện trên một loại đối tượng không chính xác/không được hỗ trợ. Ví dụ: sử dụng toán tử + (bổ sung) trên một chuỗi và giá trị số nguyên sẽ tăng kiểu mẫu.TypeError is raised whenever an operation is performed on an incorrect/unsupported object type. For example, using the + (addition) operator on a string and an integer value will raise TypeError.

Ví dụ

Các nguyên nhân chung cho kiểu loại được nâng lên là:

1. Hoạt động không được hỗ trợ giữa hai loại:

Trong ví dụ sau, biến ‘Geek, là một chuỗi và biến‘ num, là một số nguyên. Toán tử + (bổ sung) không thể được sử dụng giữa hai loại này và do đó kiểu mẫu được nâng lên.

Python3

TypeError: list indices must be integers or slices, not str
1
TypeError: list indices must be integers or slices, not str
2
TypeError: list indices must be integers or slices, not str
3

TypeError: list indices must be integers or slices, not str
4
TypeError: list indices must be integers or slices, not str
2
TypeError: list indices must be integers or slices, not str
6

TypeError: list indices must be integers or slices, not str
7
TypeError: list indices must be integers or slices, not str
8
TypeError: list indices must be integers or slices, not str
9
TypeError: list indices must be integers or slices, not str
4
TypeError: list indices must be integers or slices, not str
9
TypeError: 'float' object is not iterable
2

Đầu ra:

TypeError: must be str, not int

2. Gọi một định danh không thể gọi được:

Trong mã ví dụ dưới đây, biến ‘Geek, là một chuỗi và không thể gọi được trong ngữ cảnh này. Vì nó được gọi trong câu lệnh in, TypeError được nâng lên.

Python3

TypeError: list indices must be integers or slices, not str
1
TypeError: list indices must be integers or slices, not str
2
TypeError: 'float' object is not iterable
5

TypeError: list indices must be integers or slices, not str
7
TypeError: 'float' object is not iterable
7

Đầu ra:

TypeError: 'str' object is not callable

2. Gọi một định danh không thể gọi được:

Trong mã ví dụ dưới đây, biến ‘Geek, là một chuỗi và không thể gọi được trong ngữ cảnh này. Vì nó được gọi trong câu lệnh in, TypeError được nâng lên.

Python3

TypeError: list indices must be integers or slices, not str
1
TypeError: list indices must be integers or slices, not str
2
TypeError: 'float' object is not iterable
5

3. Loại chỉ mục danh sách không chính xác:

TypeError: list indices must be integers or slices, not str
7
myInt = 100
myStr = "10"
myResult = myInt / myStr
3

Đầu ra:

TypeError: list indices must be integers or slices, not str

2. Gọi một định danh không thể gọi được:

Trong mã ví dụ dưới đây, biến ‘Geek, là một chuỗi và không thể gọi được trong ngữ cảnh này. Vì nó được gọi trong câu lệnh in, TypeError được nâng lên.

Python3

TypeError: list indices must be integers or slices, not str
1
TypeError: list indices must be integers or slices, not str
2
TypeError: 'float' object is not iterable
5

myInt = 100
myStr = "10"
myResult = myInt / myStr
9
TypeError: list indices must be integers or slices, not str
7
Traceback (most recent call last):
  File "/home/aditya1117/PycharmProjects/pythonProject/string12.py", line 3, in <module>
    myResult = myInt / myStr
TypeError: unsupported operand type(s) for /: 'int' and 'str'
1

Đầu ra:

TypeError: 'float' object is not iterable

2. Gọi một định danh không thể gọi được:

Trong mã ví dụ dưới đây, biến ‘Geek, là một chuỗi và không thể gọi được trong ngữ cảnh này. Vì nó được gọi trong câu lệnh in, TypeError được nâng lên.

Python3

TypeError: list indices must be integers or slices, not str
1
TypeError: list indices must be integers or slices, not str
2
TypeError: 'float' object is not iterable
5

3. Loại chỉ mục danh sách không chính xác:

Trong Python, các chỉ số danh sách phải luôn là một giá trị số nguyên. Vì giá trị chỉ mục được sử dụng trong mã sau là một chuỗi, nó tăng cách loại.

myInt = 100
myStr = "10"
myResult = myInt / myStr
9
list1 = [1, 2, 3]
list2 = (4, 5, 6)
myResult = list1 + list2
print("First list is:", list1)
print("second list is:", list2)
print("Resultant list is:", myResult)
2
myInt = 100
myStr = "10"
myResult = myInt / myStr
8

list1 = [1, 2, 3]
list2 = (4, 5, 6)
myResult = list1 + list2
print("First list is:", list1)
print("second list is:", list2)
print("Resultant list is:", myResult)
4
TypeError: list indices must be integers or slices, not str
7
list1 = [1, 2, 3]
list2 = (4, 5, 6)
myResult = list1 + list2
print("First list is:", list1)
print("second list is:", list2)
print("Resultant list is:", myResult)
6

TypeError: 'float' object is not iterable
8
TypeError: list indices must be integers or slices, not str
2
Geeky
GeeksforGeeks
TypeError: Check list of indices
Geek
0
Geeky
GeeksforGeeks
TypeError: Check list of indices
Geek
1
Geeky
GeeksforGeeks
TypeError: Check list of indices
Geek
2
TypeError: 'float' object is not iterable
5
Geeky
GeeksforGeeks
TypeError: Check list of indices
Geek
2
Geeky
GeeksforGeeks
TypeError: Check list of indices
Geek
5
Geeky
GeeksforGeeks
TypeError: Check list of indices
Geek
2
Geeky
GeeksforGeeks
TypeError: Check list of indices
Geek
7
Geeky
GeeksforGeeks
TypeError: Check list of indices
Geek
8

list1 = [1, 2, 3]
list2 = (4, 5, 6)
myResult = list1 + list2
print("First list is:", list1)
print("second list is:", list2)
print("Resultant list is:", myResult)
4
TypeError: list indices must be integers or slices, not str
7
First list is: [1, 2, 3]
second list is: [4, 5, 6]
Resultant list is: [1, 2, 3, 4, 5, 6]
8
TypeError: 'str' object is not callable
03
TypeError: 'str' object is not callable
04

Đầu ra:

Geeky
GeeksforGeeks
TypeError: Check list of indices
Geek

Bạn đã bao giờ cố gắng chia một số nguyên với một chuỗi trong khi lập trình bằng Python chưa? Nếu có, bạn có thể có một thông báo lỗi như loại Kiểu mẫu: Loại toán hạng không được hỗ trợ cho /: ‘int, và‘ str hồi. & NBSP; Trong bài viết này, chúng tôi sẽ thảo luận về ngoại lệ kiểu loại này trong Python. Chúng tôi cũng sẽ xem xét các tình huống khác nhau khi một ngoại lệ loại có thể xảy ra và cách chúng tôi có thể tránh chúng. & NBSP;

Kinderror trong Python là gì?

TypeError là một ngoại lệ trong ngôn ngữ lập trình Python xảy ra khi loại dữ liệu của các đối tượng trong hoạt động là không phù hợp. Ví dụ: nếu bạn cố gắng chia số nguyên với một chuỗi, các loại dữ liệu của số nguyên và đối tượng chuỗi sẽ không tương thích. Do điều này, & nbsp; Trình thông dịch Python sẽ tăng một ngoại lệ kiểu loại như trong ví dụ sau.

myInt = 100
myStr = "10"
myResult = myInt / myStr

Output:

Hướng dẫn how do you fix a type error in python? - làm cách nào để sửa lỗi loại trong python?

Traceback (most recent call last):
  File "/home/aditya1117/PycharmProjects/pythonProject/string12.py", line 3, in <module>
    myResult = myInt / myStr
TypeError: unsupported operand type(s) for /: 'int' and 'str'

Chúng ta hãy lấy một ví dụ khác, giả sử rằng chúng ta muốn kết hợp hai danh sách. Chúng ta có thể làm điều đó bằng cách sử dụng toán tử + như sau.

list1 = [1, 2, 3]
list2 = [4, 5, 6]
myResult = list1 + list2
print("First list is:", list1)
print("second list is:", list2)
print("Resultant list is:", myResult)

Output:

First list is: [1, 2, 3]
second list is: [4, 5, 6]
Resultant list is: [1, 2, 3, 4, 5, 6]

Bây giờ giả sử rằng chúng ta vượt qua một tuple ở vị trí của danh sách thứ hai. Ở đây, các loại dữ liệu liệt kê và tuple không tương thích với nhau trong toán tử nối. Vì vậy, trình thông dịch Python sẽ tăng một ngoại lệ kiểu loại như hình dưới đây.

list1 = [1, 2, 3]
list2 = (4, 5, 6)
myResult = list1 + list2
print("First list is:", list1)
print("second list is:", list2)
print("Resultant list is:", myResult)

Output:

TypeError: 'str' object is not callable
0

Nhìn vào các ví dụ này, chúng ta có thể nói rằng typeerror là một ngoại lệ được trình thông dịch Python nêu ra nếu các loại dữ liệu của các đối tượng khác nhau trong một hoạt động không tương thích và do đó không phù hợp.

Bây giờ chúng ta hãy xem xét một số tình huống mà các trường hợp ngoại lệ của Kiểu có khả năng xảy ra.

Khi nào một ngoại lệ kiểu loại xảy ra trong Python?

Ngoại lệ buộc chương trình chấm dứt sớm. Ngoài ra, không ai muốn các trường hợp ngoại lệ xảy ra trong các chương trình của họ. Nhưng, chúng tôi không thể kiểm soát cách người dùng sẽ chuyển đầu vào cho chương trình. Có thể có nhiều tình huống khác nhau trong đó các trường hợp ngoại lệ của kiểu loại có thể xảy ra. & NBSP;

Hãy để có một cái nhìn vào một số trong số họ.

Các trường hợp ngoại lệ của Kiểu có thể xảy ra trong khi sử dụng các chức năng được xây dựng

Tất cả các chức năng tích hợp chấp nhận các đối số đầu vào của một số loại nhất định. Ví dụ: phương thức add () trong một tập chỉ chấp nhận các đối tượng bất biến như số nguyên, chuỗi, bộ dữ liệu, số điểm nổi, vv & nbsp; như các đối số đầu vào. & nbsp; Nếu chúng ta cố gắng cung cấp một đối tượng có thể thay đổi như một danh sách làm đầu vào cho phương thức add (), nó sẽ tăng kiểu mẫu với một thông báo kiểu kiểu: Loại không thể không thể tin được: ’Danh sách Hồi giáo như sau.

TypeError: 'str' object is not callable
1

Output:

TypeError: 'str' object is not callable
2

Các ngoại lệ kiểu loại có thể xảy ra trong khi thực hiện các hoạt động giữa hai loại dữ liệu không tương thích.

Chúng tôi biết rằng các hoạt động toán học hoặc bitwise chỉ được xác định cho một số loại dữ liệu nhất định trong Python. Ví dụ: chúng ta có thể thêm một số nguyên vào số nguyên hoặc số dấu phẩy động. Mặt khác, chúng ta không thể thêm một đối tượng chuỗi vào một số nguyên. Thêm một số nguyên vào một đối tượng chuỗi sẽ gây ra kiểu mẫu với một thông báo Kiểu kiểu: Loại toán hạng không được hỗ trợ cho +: ‘int, và‘ str, như sau.

TypeError: 'str' object is not callable
3

Output:

TypeError: 'str' object is not callable
4

Tương tự như vậy, tất cả các hoạt động toán học chỉ được phép giữa các loại dữ liệu nhất định. Nếu bạn cố gắng thực hiện một thao tác toán học trên các đối tượng có các loại dữ liệu không tương thích, kiểu mẫu sẽ xảy ra.

Nếu chúng ta nói về các hoạt động bitwise, chúng ta có thể thực hiện thao tác bitwise trên một số nguyên nhưng không phải trên một chuỗi. Ví dụ, chúng ta có thể thay đổi một số nguyên theo hai bit như sau.

TypeError: 'str' object is not callable
5

Output:

TypeError: 'str' object is not callable
6

Mặt khác, nếu chúng ta cố gắng thực hiện thao tác dịch chuyển đúng trên một chuỗi, nó sẽ tăng kiểu mẫu với một thông báo kiểu kiểu mẫu: Loại toán hạng không được hỗ trợ cho >>: ’str, và‘ int. như sau.

TypeError: 'str' object is not callable
7

Output:

TypeError: 'str' object is not callable
8

Vì vậy, bạn có thể thấy rằng việc thực hiện các hoạt động toán học hoặc bitwise trên các loại dữ liệu không tương thích có thể gây ra ngoại lệ kiểu loại trong chương trình của bạn.

Các trường hợp ngoại lệ của Kiểu có thể xảy ra trong khi gọi một đối tượng không thể gọi được

Trong Python, các hàm, phương thức và tất cả các đối tượng với việc thực hiện phương thức __call __ () trong định nghĩa lớp của chúng là có thể gọi được. Chúng ta có thể gọi bất kỳ đối tượng nào có thể gọi được khi chúng ta gọi một hàm hoặc một phương thức.

Mặt khác, nếu chúng ta gọi một đối tượng không thể gọi, chẳng hạn như số nguyên, nó sẽ tăng một ngoại lệ kiểu kiểu với một thông báo Kiểu kiểu: ‘Int đối tượng không thể gọi được như sau.

TypeError: 'str' object is not callable
9

Output:

TypeError: list indices must be integers or slices, not str
0

Làm thế nào để tránh các trường hợp ngoại lệ trong Python?

Lỗi là không thể tránh khỏi trong một chương trình. Nhưng, bạn luôn có thể giảm thiểu sự xuất hiện của các lỗi. Để giảm thiểu các ngoại lệ kiểu mẫu, bạn có thể sử dụng các hướng dẫn sau.

  1. Bất cứ khi nào bạn đang cố gắng sử dụng một phương thức hoặc chức năng được xây dựng, hãy luôn đọc tài liệu của nó. Điều này sẽ giúp bạn hiểu các đầu vào và đầu ra của các chức năng. Kiến thức về các đầu vào và đầu ra sẽ giúp bạn tránh các ngoại lệ loại trong chương trình của bạn.
  2. Trong khi thực hiện các hoạt động toán học hoặc bitwise, bạn có thể kiểm tra các loại dữ liệu của các toán hạng trước. Điều này sẽ giúp bạn tránh thực hiện các hoạt động toán học hoặc bitwise trên các loại dữ liệu không tương thích. Do đó, bạn sẽ có thể tránh các ngoại lệ kiểu kiểu.
  3. Đặt tên thích hợp cho các biến, chức năng, lớp học và phương thức trong các chương trình của bạn. Điều này sẽ giúp bạn tránh gọi một đối tượng không thể gọi được. Do đó, bạn sẽ có thể tránh các trường hợp ngoại lệ của Kiểu hàng. & NBSP;

Sự kết luận

Trong bài viết này, chúng tôi đã thảo luận về ngoại lệ kiểu loại, nguyên nhân của nó và làm thế nào chúng tôi có thể tránh chúng. Bạn cũng có thể xử lý các ngoại lệ này bằng cách sử dụng Python, hãy thử ngoại trừ các khối. Nhưng, tôi sẽ khuyên bạn nên tránh ngoại lệ thay vì xử lý nó sau khi nó xảy ra. & NBSP;

Khuyến nghị đào tạo Python

Khóa học: Python 3 cho người mới bắt đầu

Hơn 15 giờ nội dung video với hướng dẫn hướng dẫn cho người mới bắt đầu. Tìm hiểu làm thế nào để tạo các ứng dụng trong thế giới thực và làm chủ những điều cơ bản.

Loại lỗi có nghĩa là gì?

Đối tượng kiểu mẫu biểu thị lỗi khi không thể thực hiện thao tác, thông thường (nhưng không chỉ riêng) khi giá trị không thuộc loại dự kiến.Một kiểu mẫu có thể được ném khi: một toán hạng hoặc đối số được truyền cho một hàm không tương thích với loại được mong đợi bởi toán tử hoặc chức năng đó;hoặc.an error when an operation could not be performed, typically (but not exclusively) when a value is not of the expected type. A TypeError may be thrown when: an operand or argument passed to a function is incompatible with the type expected by that operator or function; or.

3 lỗi trong Python là gì?

Có ba loại lỗi cơ bản mà các lập trình viên cần phải quan tâm: lỗi cú pháp, lỗi thời gian chạy và lỗi logic.Syntax errors, runtime errors, and Logical errors.