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.
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)
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'))
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]
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!