ValueError dalam Pemisahan Baris untuk Pasangan Soalan-Jawapan
Apabila cuba memisahkan baris input kepada berbilang pembolehubah menggunakan fungsi split() Python , anda mungkin menghadapi pengecualian 'ValueError', menunjukkan ketidakpadanan antara bilangan nilai yang dijangkakan dan nilai sebenar nilai yang ada. Isu ini boleh timbul atas pelbagai sebab, tetapi dua senario biasa melibatkan:
1. Nilai Tidak Mencukupi:
Masalah: Jika baris dalam fail input tidak mempunyai aksara ':', menyebabkan split() mengembalikan satu item dan bukannya dua nilai yang dijangkakan.
Penyelesaian: Sahkan jika baris terakhir dalam fail input kosong (hanya mengandungi ruang putih) dan kendalikan kes sewajarnya. Pastikan setiap baris mengandungi aksara ':' untuk fungsi split() berfungsi dengan betul.
2. Nilai Berlebihan:
Masalah: Sebaliknya, jika terdapat lebih daripada dua aksara ':' pada baris, split() akan mengembalikan lebih banyak nilai daripada yang dijangkakan.
Penyelesaian: Lakukan semakan awal untuk mengesahkan bahawa setiap baris mengandungi tepat satu aksara ':' sebelum mencuba membelahnya. Baris dengan tiada atau lebih daripada satu ':' hendaklah ditapis keluar atau dikendalikan secara berbeza.
Contoh:
Pertimbangkan kod berikut:
with open('qanda.txt', 'r') as qanda_file: for line in qanda_file: if ':' in line: question, answer = line.strip().split(':') # Process question and answer
Kod ini menyemak kehadiran ':' dalam setiap baris dan hanya memisahkan baris dengan satu aksara ':', menghalang berlakunya Pengecualian 'ValueError' kerana nilai yang tiada atau berlebihan.
Atas ialah kandungan terperinci Mengapa Saya Menghadapi Ralat Nilai Apabila Memisahkan Pasangan Soalan-Jawapan dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!