TypeErro: Bagaimana untuk menyelesaikan ralat jenis Python?

王林
Lepaskan: 2023-06-24 23:24:08
asal
5376 orang telah melayarinya

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."
Salin selepas log masuk

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

TypeError: can only concatenate str (not "int") to str
Salin selepas log masuk
Salin selepas log masuk

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)
Salin selepas log masuk
  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)
Salin selepas log masuk

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

TypeError: can only concatenate str (not "int") to str
Salin selepas log masuk
Salin selepas log masuk

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'))
Salin selepas log masuk
  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
Salin selepas log masuk

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

TypeError: can only concatenate list (not "str") to list
Salin selepas log masuk

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]
Salin selepas log masuk
  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]
Salin selepas log masuk

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
Salin selepas log masuk

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]
Salin selepas log masuk

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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan