Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana Mengendalikan ValueErrors Apabila Memisahkan Talian Input dengan `split()`?

Bagaimana Mengendalikan ValueErrors Apabila Memisahkan Talian Input dengan `split()`?

DDD
Lepaskan: 2024-11-29 22:30:13
asal
675 orang telah melayarinya

How to Handle ValueErrors When Splitting Input Lines with `split()`?

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

  • ValueError: memerlukan lebih daripada 1 nilai untuk membongkar: Berlaku apabila fungsi split() hanya mengembalikan satu nilai, bermakna tiada pemisah dalam baris input.
  • ValueError: terlalu banyak nilai untuk dibongkar (dijangka 2): Sebaliknya, ralat ini menunjukkan bahawa fungsi split() dikembalikan lebih banyak nilai daripada yang dijangkakan. Ia selalunya disebabkan oleh berbilang pemisah dalam baris input.

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

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!

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