Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana Mengendalikan ValueError Apabila Memisahkan Baris Input untuk Pasangan Soalan-Jawapan?

Bagaimana Mengendalikan ValueError Apabila Memisahkan Baris Input untuk Pasangan Soalan-Jawapan?

Susan Sarandon
Susan Sarandonasal
2024-11-15 01:23:02843semak imbas

How to Handle ValueError When Splitting Input Lines for Question-Answer Pairs?

Memisahkan Baris Input untuk Pasangan Soalan-Jawapan

Apabila memisahkan baris input kepada berbilang pembolehubah, anda mungkin menghadapi ValueError yang menunjukkan keperluan untuk lebih banyak atau kurang nilai untuk dibongkar. Isu ini timbul apabila garisan yang dibelah tidak mengandungi aksara pembatas yang digunakan dalam kaedah pemisahan.

Khususnya, dalam kod yang disediakan, setiap baris dalam fail input dibelah pada titik bertindih (:). Jika baris tidak mengandungi titik bertindih atau berbilang titik bertindih, kaedah pemisahan akan gagal.

Punca Ralat Nilai

  • Terlalu Sedikit Nilai: Apabila baris input tidak mengandungi titik bertindih, kaedah split mengembalikan senarai dengan satu rentetan kosong. Menugaskan senarai ini kepada berbilang pembolehubah (cth., soalan, jawapan) menimbulkan ValueError kerana tidak ada nilai yang mencukupi untuk dibongkar.
  • Terlalu Banyak Nilai: Jika baris mengandungi lebih daripada satu titik bertindih, kaedah split mengembalikan senarai dengan lebih banyak elemen daripada yang dijangkakan. Apabila memperuntukkan senarai ini kepada berbilang pembolehubah, ValueError dibangkitkan kerana terdapat terlalu banyak nilai untuk dibongkar.

Penyelesaian

Untuk menyelesaikan isu ini, anda boleh semak sama ada baris input mengandungi bilangan nilai yang dijangkakan sebelum membelah:

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)

Semakan ini memastikan bahawa baris mengandungi titik bertindih sebelum cuba membelahnya. Jika baris tidak mengandungi titik bertindih, ia diabaikan, menghalang ValueError daripada dinaikkan.

Atas ialah kandungan terperinci Bagaimana Mengendalikan ValueError Apabila Memisahkan Baris Input untuk Pasangan Soalan-Jawapan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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