Rumah  >  Artikel  >  pembangunan bahagian belakang  >  TypeErro: Bagaimana untuk menyelesaikan ralat jenis Python?

TypeErro: Bagaimana untuk menyelesaikan ralat jenis Python?

王林
王林asal
2023-06-24 23:24:085324semak imbas

Dalam pengaturcaraan Python, ralat taip (TypeError) adalah salah satu jenis ralat biasa. Ralat jenis berlaku apabila kami menggunakan jenis data atau operasi yang salah dalam program. Dalam artikel ini, kami akan meneroka situasi biasa dan penyelesaian untuk ralat jenis.

  1. Cuba menambah rentetan pada integer

Apabila kita ingin menggabungkan nombor dan rentetan, kita mungkin menulis kod seperti ini:

age = 28
message = "I am " + age + " years old."

Apabila kita menjalankan kod di atas, kita menerima Ralat berikut:

TypeError: can only concatenate str (not "int") to str

Ini kerana Python tidak membenarkan penambahan integer dan rentetan. Untuk menyelesaikan masalah ini, kita perlu menukar nombor kepada rentetan, yang boleh dilakukan menggunakan kaedah str() dalam Python. Kod yang diubah suai adalah seperti berikut:

age = 28
message = "I am " + str(age) + " years old."
print(message)
  1. Jenis parameter yang salah

Apabila menggunakan fungsi, kita perlu memasukkan jenis parameter yang betul mengikut jenis parameter yang ditentukan oleh fungsi tersebut. Jika kita memasukkan parameter jenis yang salah, ralat jenis akan berlaku. Contohnya:

def add_numbers(a, b):
    return a + b

sum = add_numbers('a', 1)

Apabila menjalankan kod di atas, kami akan menerima ralat berikut:

TypeError: can only concatenate str (not "int") to str

Ini kerana kami menambah rentetan dan integer dan perlu menukar rentetan atau integer semuanya kepada jenis yang sama. Dengan menukar rentetan 'a' kepada jenis integer, masalah boleh diselesaikan:

def add_numbers(a, b):
    return a + b

sum = add_numbers(int('1'), int('2'))
  1. Jenis senarai yang berbeza

Dalam Python, kita boleh menggunakan senarai untuk menyimpan set data. Ralat jenis berlaku apabila kami cuba menggabungkan dua senarai jenis yang berbeza.

alist = [1, 2, 3]
blist = ['a', 'b', 'c']
newlist = alist + blist

Apabila menjalankan kod di atas, kami akan menerima ralat berikut:

TypeError: can only concatenate list (not "str") to list

Ini kerana Python tidak membenarkan penyatuan senarai rentetan ke dalam senarai integer. Untuk menyelesaikan masalah ini, kita boleh menukar semua jenis data dalam dua senarai kepada jenis yang sama:

alist = [1, 2, 3]
blist = ['4', '5', '6']
newlist = alist + [int(x) for x in blist]
  1. Jenis indeks yang salah

Apabila kita merujuk indeks yang tidak wujud dalam urutan (seperti senarai) , ralat indeks akan berlaku. Ralat jenis berlaku apabila kami menggunakan jenis indeks yang salah (seperti menggunakan senarai diindeks rentetan).

alist = [1, 2, 3]
index = 'a'
value = alist[index]

Apabila mentakrifkan indeks sebagai rentetan 'a', apabila menjalankan kod di atas, kami akan menerima ralat berikut:

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

Untuk menyelesaikan masalah ini, kami perlu mengesahkan bahawa nilai indeks adalah jenis integer, ubah suai kod:

alist = [1, 2, 3]
index = 1
value = alist[index]

Ringkasan:

Ralat jenis ialah ralat biasa yang biasanya berlaku apabila kami menggunakan jenis data atau operasi yang salah. Semasa pengaturcaraan, kita harus mengelakkan ralat ini dengan menggunakan kaedah terbina dalam Python atau sentiasa menyemak jenis pembolehubah untuk memastikan jenis parameter yang diluluskan adalah betul.

Atas ialah kandungan terperinci TypeErro: Bagaimana untuk menyelesaikan ralat jenis Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn