HomeLập trìnhPythonchỉ số chuỗi...

chỉ số chuỗi phải là số nguyên – Cách khắc phục trong Python


Trong Python, có một số đối tượng có thể lặp lại nhất định – danh sách, bộ dữ liệu và chuỗi – có thể truy cập các mục hoặc ký tự của chúng bằng cách sử dụng số chỉ mục của chúng.

Ví dụ: để truy cập ký tự đầu tiên trong chuỗi, bạn sẽ làm như sau:

greet = "Hello World!"

print(greet[0])
# H

Để truy cập giá trị của ký tự đầu tiên trong greet ở trên, chúng tôi đã sử dụng số chỉ mục của nó: greet[0].

Nhưng có những trường hợp bạn sẽ gặp lỗi “TypeError: string indices must be integers” khi cố gắng truy cập một ký tự trong chuỗi.

Trong bài viết này, bạn sẽ thấy lý do xảy ra lỗi này và cách khắc phục.

Điều gì gây ra “TypeError: chỉ số chuỗi phải là số nguyên” trong Python?

Có hai lý do phổ biến khiến lỗi “TypeError: string indices must be integers” có thể xuất hiện.

Chúng ta sẽ nói về những lý do này và giải pháp của chúng trong hai phần phụ khác nhau.

Cách khắc phục TypeError: string indices must be integers Lỗi chuỗi trong Python

Như chúng ta đã thấy trong phần trước, để truy cập một ký tự trong chuỗi, bạn sử dụng chỉ mục của ký tự đó.

Đọc thêm  Python Nhận phần tử cuối cùng trong danh sách – Cách chọn mục cuối cùng

Chúng tôi nhận được lỗi “TypeError: string indices must be integers” khi chúng tôi cố gắng truy cập một ký tự bằng cách sử dụng giá trị chuỗi của nó thay vì số chỉ mục.

Đây là một ví dụ để giúp bạn hiểu:

greet = "Hello World!"

print(greet["H"])
# TypeError: string indices must be integers

Như bạn có thể thấy trong đoạn mã trên, chúng tôi gặp lỗi khi nói TypeError: string indices must be integers.

Điều này xảy ra bởi vì chúng tôi đã cố gắng truy cập H sử dụng giá trị của nó (“H”) thay vì số chỉ mục của nó.

Đó là, greet["H"] thay vì greet[0]. Đó chính xác là cách khắc phục.

Giải pháp cho vấn đề này khá đơn giản:

  • Không bao giờ sử dụng chuỗi để truy cập các mục/ký tự khi làm việc với các đối tượng có thể lặp lại yêu cầu bạn sử dụng số chỉ mục (số nguyên) khi truy cập các mục/ký tự.

Cách khắc phục TypeError: string indices must be integers Lỗi khi cắt chuỗi trong Python

Khi bạn cắt một chuỗi trong Python, một dãy ký tự từ chuỗi được trả về dựa trên các tham số đã cho (startend thông số).

Đây là một ví dụ:

greet = "Hello World!"

print(greet[0:6])
# Hello 

Trong đoạn mã trên, chúng tôi đã cung cấp hai tham số – 0 và 6. Điều này trả về tất cả các ký tự trong chỉ mục 0 và chỉ mục 6.

Chúng tôi nhận được lỗi “TypeError: string indices must be integers” khi chúng tôi sử dụng cú pháp slice không chính xác.

Đọc thêm  Hàm range() trong Python – Được giải thích bằng các ví dụ về mã

Đây là một ví dụ để chứng minh rằng:

greet = "Hello World!"

print(greet[0,6])
# TypeError: string indices must be integers

Lỗi trong mã rất dễ bỏ sót vì chúng tôi đã sử dụng số nguyên – nhưng chúng tôi vẫn gặp lỗi. Trong những trường hợp như vậy, thông báo lỗi có thể gây hiểu lầm.

Chúng tôi gặp phải lỗi này vì chúng tôi đã sử dụng sai cú pháp. Trong ví dụ của chúng tôi, chúng tôi đã sử dụng dấu phẩy khi tách các startend thông số: [0,6]. Đây là lý do tại sao chúng tôi gặp lỗi.

Để khắc phục điều này, bạn có thể thay dấu phẩy thành dấu hai chấm.

Khi cắt chuỗi trong Python, bạn bắt buộc phải tách chuỗi startend tham số sử dụng dấu hai chấm – [0:6].

Tóm lược

Trong bài viết này, chúng ta đã nói về lỗi “TypeError: string indices must be integers” trong Python.

Lỗi này xảy ra khi làm việc với chuỗi Python vì hai lý do chính – sử dụng chuỗi thay vì số chỉ mục (số nguyên) khi truy cập một ký tự trong chuỗi và sử dụng sai cú pháp khi cắt chuỗi trong Python.

Chúng tôi đã xem các ví dụ gây ra lỗi này trong hai phần phụ và tìm hiểu cách khắc phục chúng.

Chúc mừng mã hóa!



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