Memisahkan Talian Input: Mengendalikan ValueErrors
Apabila memisahkan baris input menggunakan fungsi split(), adalah penting untuk memastikan baris input mengandungi pemisah yang dijangkakan. Jika baris tidak mempunyai pemisah yang ditetapkan, seperti titik bertindih (:), fungsi split() akan mengembalikan sama ada nilai tunggal atau pengecualian.
Memahami ValueErrors
Punca ValueErrors
Dalam kod khusus anda, ValueErrors mungkin timbul daripada baris terakhir dalam fail input, yang mungkin mengandungi hanya ruang kosong. Apabila anda melakukan string.strip() pada ruang kosong ini, ia mengembalikan rentetan kosong, yang apabila dipecah pada kolon memberikan rentetan kosong. Ini meninggalkan anda dengan satu elemen, mencetuskan ralat "memerlukan lebih daripada 1 nilai untuk membongkar".
Penyelesaian
Untuk mengelakkan ValueErrors ini, anda boleh melaksanakan semakan untuk memastikan setiap baris mempunyai pemisah yang diharapkan. Berikut ialah versi kod anda yang diubah suai:
questions_list = [] answers_list = [] with open('qanda.txt', 'r') as questions_file: for line in questions_file: line = line.strip() if ':' in line: questions, answers = line.split(':') questions_list.append(questions) answers_list.append(answers)
Dengan menambahkan pernyataan if yang menyemak pemisah bertindih, anda menapis baris yang kekurangannya dan menghalang fungsi split() daripada meningkatkan ValueErrors.
Atas ialah kandungan terperinci Bagaimana Mengendalikan ValueErrors Apabila Memisahkan Talian Input dengan `split()`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!