Ralat Membongkar Berbilang Nilai dalam Pemisahan Baris
Apabila membelah baris teks kepada berbilang pembolehubah menggunakan kaedah split(), anda mungkin menghadapi ValueError yang menunjukkan terlalu sedikit atau terlalu banyak nilai untuk dibongkar. Ini berlaku apabila bilangan nilai yang dijangkakan daripada operasi belah tidak sepadan dengan bilangan pembolehubah yang ditetapkan.
Mengapa Ia Berlaku
Kaedah split() membahagikan input rentetan ke dalam senarai subrentetan berdasarkan pemisah yang ditentukan. Jika terdapat kurang pemisah daripada yang diperlukan, bilangan nilai yang kurang daripada jangkaan akan dikembalikan. Sebaliknya, jika terdapat lebih banyak pemisah daripada yang dijangkakan, operasi pemisahan akan menghasilkan lebih banyak nilai daripada pembolehubah untuk ditetapkan.
Punca Biasa: Talian Kosong
Sebab biasa kerana ralat ini adalah baris kosong pada penghujung fail input. Apabila kaedah strip() digunakan untuk mengalih keluar ruang putih sebelum membelah, baris kosong ditukar kepada rentetan kosong. Pemisahan rentetan kosong pada pemisah akan menghasilkan senarai kosong.
Betulkan atau Penyelesaian
Untuk menyelesaikan isu ini, ikut langkah berikut:
Pembahagian Bersyarat: Gunakan semakan bersyarat untuk mengelakkan garisan terbelah tanpa pemisah. Contohnya, anda boleh menambah baris berikut sebelum operasi belah:
if ':' in line: questions, answers = line.split(':')
Bersyarat ini memastikan bahawa hanya garisan yang mengandungi titik bertindih dipisahkan.
Atas ialah kandungan terperinci Mengapa Pemisahan Baris kepada Pembolehubah Menghasilkan Ralat Membongkar Berbilang Nilai?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!