Dalam pengaturcaraan, kita sering menghadapi situasi di mana kita perlu menukar rentetan (str) kepada integer (int). Ini mungkin kerana kita perlu melakukan pengiraan berangka pada rentetan, atau perlu menukar rentetan yang dimasukkan pengguna kepada integer untuk diproses. Artikel ini akan menunjukkan kepada anda cara menukar rentetan kepada integer.
1 Gunakan fungsi terbina dalam int()
Python menyediakan fungsi terbina dalam int() yang boleh digunakan untuk menukar rentetan kepada integer. Sintaks asas fungsi ini adalah seperti berikut:
int(string, base)
Antaranya, rentetan ialah rentetan yang hendak ditukar, dan pangkalan ialah parameter pilihan, yang menunjukkan pangkalan rentetan. Jika asas tidak ditentukan, lalai ialah perpuluhan.
Untuk menukar rentetan kepada integer, hanya gunakan fungsi int() yang menghantar rentetan sebagai parameter. Contohnya adalah seperti berikut:
num_str = "123" # 定义一个字符串 num_int = int(num_str) # 将字符串转换为整数 print(num_int) # 输出:123 print(type(num_int)) # 输出:
2 Gunakan try-except untuk mengendalikan pengecualian
Apabila menukar rentetan kepada integer, anda mungkin menghadapi beberapa masalah. Sebagai contoh, rentetan mengandungi aksara bukan angka, atau nilai yang diwakili oleh rentetan melebihi julat integer. Untuk mengelakkan program daripada ranap semasa penukaran, kami boleh menggunakan penyataan cuba-kecuali untuk mengendalikan pengecualian.
Apabila menggunakan fungsi int() untuk menukar rentetan, jika pengecualian berlaku, Python akan menaikkan pengecualian ValueError. Oleh itu, kita boleh menggunakan try-except untuk menangkap pengecualian ini dan mengendalikannya dengan sewajarnya.
num_str = "abc" # 包含非数字字符的字符串 try: num_int = int(num_str) print(num_int) except ValueError: print("字符串不能转换为整数")
Dalam contoh di atas, kerana rentetan mengandungi aksara bukan angka "abc", fungsi int() tidak boleh menukarnya kepada integer, jadi pengecualian ValueError dinaikkan. Dalam blok kecuali, kami mengeluarkan mesej gesaan yang sepadan.
3 Gunakan ungkapan biasa
Cara lain untuk menukar rentetan kepada integer ialah menggunakan ungkapan biasa. Ungkapan biasa ialah alat padanan corak yang berkuasa yang boleh digunakan untuk mengekstrak corak tertentu daripada rentetan.
Kita boleh menggunakan fungsi findall() dalam modul semula untuk mencari corak angka dalam rentetan dan mengekstraknya. Kami kemudiannya boleh menggunakan fungsi int() untuk menukar senarai rentetan yang diekstrak kepada integer.
import re num_str = "I have 123 apples" # 包含数字的字符串 numbers = re.findall(r'\d+', num_str) # 使用正则表达式查找数字模式 int_list = [int(num) for num in numbers] # 将字符串列表转换为整数列表 print(int_list) # 输出:[123]
Dalam contoh di atas, ungkapan biasa r'd+' bermaksud memadankan satu atau lebih aksara angka. Fungsi findall() mengembalikan senarai semua rentetan yang sepadan. Kami kemudian menggunakan pemahaman senarai untuk menukar rentetan ini kepada integer.
Ringkasan:
Artikel ini memperkenalkan tiga kaedah untuk menukar rentetan kepada integer. Menggunakan fungsi int() ialah kaedah yang paling biasa, tetapi anda perlu memberi perhatian kepada pengecualian pengendalian. Gunakan ungkapan biasa untuk mengekstrak corak berangka dalam rentetan dan menukarnya kepada integer. Dalam aplikasi sebenar, pilih kaedah yang paling sesuai untuk menukar rentetan kepada integer mengikut situasi tertentu. .
Atas ialah kandungan terperinci Bagaimana untuk menukar rentetan kepada jenis int. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!