HomeLập trìnhPythonĐối tượng Int...

Đối tượng Int không thể lặp lại – Lỗi Python [Solved]


Nếu bạn đang chạy mã Python và thấy lỗi “TypeError: ‘int’ object is not iterable”, điều đó có nghĩa là bạn đang cố lặp qua một số nguyên hoặc kiểu dữ liệu khác mà các vòng lặp không thể hoạt động.

Trong Python, dữ liệu có thể lặp lại là danh sách, bộ dữ liệu, bộ, từ điển, v.v.

Ngoài ra, lỗi này là “TypeError” có nghĩa là bạn đang cố thực hiện một thao tác trên một loại dữ liệu không phù hợp. Ví dụ, thêm một chuỗi với một số nguyên.

Hôm nay là ngày cuối cùng bạn gặp phải lỗi này khi chạy mã Python. Bởi vì trong bài viết này, tôi không chỉ hướng dẫn bạn cách khắc phục mà còn hướng dẫn bạn cách kiểm tra __iter__ các phương thức ma thuật để bạn có thể xem liệu một đối tượng có thể lặp lại hay không.

Cách khắc phục đối tượng Int không thể lặp lại

Nếu bạn đang cố lặp qua một số nguyên, bạn sẽ gặp lỗi này:

count = 14

for i in count:
    print(i)
# Output: TypeError: 'int' object is not iterable

Một cách để khắc phục nó là chuyển biến vào range() chức năng.

Trong Python, hàm range kiểm tra biến được truyền vào nó và trả về một dãy số bắt đầu từ 0 và dừng ngay trước số được chỉ định.

Đọc thêm  10 gói Python bên ngoài mà bạn sẽ yêu thích

Bây giờ vòng lặp sẽ chạy:

count = 14

for i in range(count):
    print(i)
    
# Output: 0
# 1
# 2
# 3
# 4
# 5
# 6
# 7
# 8
# 9
# 10
# 11
# 12
# 13

Một ví dụ khác sử dụng giải pháp này là trong đoạn trích dưới đây:

age = int(input("Enter your age: "))

for num in range(age):
    print(num)

# Output: 
# Enter your age: 6
# 0
# 1
# 2
# 3
# 4
# 5

Cách kiểm tra xem dữ liệu hoặc đối tượng có thể lặp lại không

Để kiểm tra xem một số dữ liệu cụ thể có thể lặp lại hay không, bạn có thể sử dụng dir() phương pháp. Nếu bạn có thể thấy phương pháp kỳ diệu __iter__, thì dữ liệu có thể lặp lại. Nếu không, thì dữ liệu không thể lặp lại được và bạn không cần phải lặp qua chúng.

perfectNum = 7

print(dir(perfectNum))

# Output:['__abs__', '__add__', '__and__', '__bool__', '__ceil__', '__class__', '__delattr__', '__dir__', '__divmod__', '__doc__', '__eq__', '__float__', '__floor__', '__floordiv__', '__format__', '__ge__', '__getattribute__', '__getnewargs__', '__gt__', '__hash__', '__index__', '__init__', '__init_subclass__', '__int__', '__invert__', '__le__', '__lshift__', '__lt__', '__mod__', '__mul__', '__ne__', '__neg__', '__new__', '__or__', '__pos__', 
# '__pow__', '__radd__', '__rand__', '__rdivmod__', '__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', '__rlshift__', '__rmod__', '__rmul__', '__ror__', '__round__', '__rpow__', '__rrshift__', '__rshift__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__truediv__', '__trunc__', '__xor__', 'bit_length', 'conjugate', 'denominator', 'from_bytes', 'imag', 'numerator', 'real', 'to_bytes']

Các __iter__ phương thức ma thuật không được tìm thấy trong đầu ra, vì vậy biến perfectNum là không thể lặp lại.

jerseyNums = [43, 10, 7, 6, 8]

print(dir(jerseyNums))

# Output: ['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']

phương pháp ma thuật __iter__ đã được tìm thấy, vì vậy danh sách jerseyNums có thể lặp lại được.

Đọc thêm  Python Not Equal – Hướng dẫn toán tử Does Not Equal

Phần kết luận

Trong bài viết này, bạn đã tìm hiểu về lỗi “Int Object is Not Iterable” và cách khắc phục.

Bạn cũng có thể thấy rằng có thể kiểm tra xem một đối tượng hoặc một số dữ liệu có thể lặp lại hay không.

Nếu bạn kiểm tra __iter__ phương pháp ma thuật trong một số dữ liệu và bạn không tìm thấy nó, tốt hơn hết là đừng cố lặp qua dữ liệu vì chúng không thể lặp lại được.

Cảm ơn bạn đã đọc.



Zik.vn – Biên dịch & Biên soạn Lại

spot_img

Create a website from scratch

Just drag and drop elements in a page to get started with Newspaper Theme.

Buy Now ⟶

Bài viết liên quang

DMCA.com Protection Status