Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Ralat Python: ValueError: literal tidak sah untuk int() dengan asas 10: 'xxx', bagaimana untuk menyelesaikannya?

Ralat Python: ValueError: literal tidak sah untuk int() dengan asas 10: 'xxx', bagaimana untuk menyelesaikannya?

王林
王林asal
2023-08-18 17:24:1320269semak imbas

Python报错:ValueError: invalid literal for int() with base 10: 'xxx',该如何解决?

Ralat Python: ValueError: literal tidak sah untuk int() dengan asas 10: 'xxx', bagaimana untuk menyelesaikannya?

Dalam proses menggunakan Python untuk pembangunan pengaturcaraan, kami sering menghadapi pelbagai mesej ralat. Antaranya, ralat biasa ialah "ValueError: literal tidak sah untuk int() dengan asas 10: 'xxx'". Ralat ini biasanya berlaku apabila menghantar rentetan yang tidak boleh ditukar kepada integer kepada fungsi int().

Maksud mesej ralat ini ialah: Ralat berlaku semasa menghantar rentetan ke fungsi int() kerana rentetan tidak boleh dihuraikan sebagai integer yang sah. Sebab yang mungkin ialah rentetan mengandungi aksara bukan angka atau rentetan itu kosong.

Mari kita lihat contoh kod untuk menghasilkan semula ralat ini:

number = input("请输入一个整数:")
result = int(number)
print(result)

Dalam kod ini, kami menggunakan fungsi input() untuk menerima rentetan yang dimasukkan oleh pengguna dan cuba menukarnya kepada jenis integer. Jika rentetan yang dimasukkan oleh pengguna tidak boleh ditukar kepada integer, ralat "Tersurat tidak sah untuk int() dengan asas 10" akan dicetuskan.

Untuk menyelesaikan masalah ini, kami boleh melakukan beberapa operasi pengendalian ralat. Berikut ialah beberapa penyelesaian biasa:

  1. Gunakan pernyataan cuba-kecuali untuk pengendalian pengecualian
number = input("请输入一个整数:")
try:
    result = int(number)
    print(result)
except ValueError:
    print("输入的字符串无法转换为整数,请重新输入!")

Dalam contoh ini, kami menggunakan pernyataan cuba-kecuali untuk menangkap pengecualian ValueError. Jika rentetan yang dimasukkan oleh pengguna tidak boleh ditukar kepada integer, pengecualian akan dicetuskan, dan kemudian program akan melompat ke blok kecuali untuk melaksanakan kod pengendalian ralat yang sepadan.

  1. Menyemak menggunakan kaedah isdigit()
number = input("请输入一个整数:")
if number.isdigit():
    result = int(number)
    print(result)
else:
    print("输入的字符串无法转换为整数,请重新输入!")

Dalam contoh ini, kami menggunakan kaedah isdigit() untuk menyemak sama ada rentetan input mengandungi hanya aksara angka. Jika rentetan tidak mengandungi aksara bukan angka, ia boleh ditukar dengan selamat kepada integer jika tidak, mesej ralat akan dikeluarkan.

Selain dua kaedah ini, beberapa pemprosesan lain juga boleh dilakukan mengikut keperluan perniagaan tertentu. Contohnya, jika rentetan input kosong, anda boleh menggesa pengguna untuk memasukkan semula jika anda perlu mengekalkan aksara bukan angka dalam rentetan input, anda boleh menggunakan ungkapan biasa untuk mengekstrak aksara angka yang sah, dsb.

Ringkasnya, apabila kita menemui ralat "ValueError: literal tidak sah untuk int() dengan asas 10: 'xxx'" semasa pengaturcaraan Python, kita harus terlebih dahulu menyemak sama ada rentetan input memenuhi keperluan untuk menukarnya kepada integer Require. Kemudian, pilih kaedah pemprosesan yang sesuai berdasarkan keperluan perniagaan, seperti menggunakan pernyataan cuba-kecuali untuk pengendalian pengecualian atau menggunakan kaedah isdigit() untuk menyemak kandungan rentetan. Melalui kaedah ini, kami dapat menyelesaikan ralat ini dengan lebih baik dan meningkatkan keteguhan program.

Atas ialah kandungan terperinci Ralat Python: ValueError: literal tidak sah untuk int() dengan asas 10: 'xxx', bagaimana untuk menyelesaikannya?. 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