Android

Bagaimana untuk menukar rentetan kepada bilangan bulat dalam python

how to convert string to integer and vice versa in python3

how to convert string to integer and vice versa in python3

Isi kandungan:

Anonim

Semua jenis data dalam Python, termasuk integer dan rentetan, adalah objek. Selalunya apabila menulis kod Python, anda perlu menukar satu jenis data kepada yang lain. Sebagai contoh, untuk menjalankan operasi matematik pada nombor yang diwakili sebagai rentetan, ia perlu diubah menjadi integer.

Dalam tutorial ini, kami akan menunjukkan kepada anda bagaimana untuk menukar rentetan Python kepada integer.

Fungsi Python int()

Fungsi terbina dalam int() mengembalikan objek integer perpuluhan dari nombor atau rentetan yang diberikan. Ia mengambil bentuk berikut:

int(x, base=10)

Fungsi `menerima dua hujah:

  • x - String atau nombor untuk ditukar kepada integer. base - Ia mewakili sistem angka hujah pertama. Nilainya boleh 0 dan 2-36. Jika tiada pangkalan diberikan, kegagalan adalah 10 (integer perpuluhan).

Biasanya, bilangan bulat dinyatakan dalam heksadesimal (asas 16), perpuluhan (asas 10), orkal (asas 8), atau notasi binari (asas 2).

Jika hujah yang diberikan tidak boleh diwakili sebagai integer, fungsi tersebut akan membuang pengecualian ValueError .

Menukar Python String ke Integer

Dalam Python, 'rentetan' adalah senarai watak-watak yang diisytiharkan menggunakan single ( ' ), double ( " ), atau sebutan triple ( """ ).

Sekiranya pembolehubah yang mengandungi hanya nombor diisytiharkan menggunakan sebut harga, jenis datanya ditetapkan ke String. Pertimbangkan contoh berikut:

days = "23" type(days)

Fungsi type() menunjukkan kepada kita bahawa days adalah objek String.

Mari cuba lakukan operasi matematik pada pembolehubah:

print(days+5)

Python akan membuang ralat pengecualian TypeError kerana kami tidak boleh melakukan pengiraan tambahan dengan rentetan dan integer:

Traceback (most recent call last): File " ", line 1, in TypeError: cannot concatenate 'str' and 'int' objects Traceback (most recent call last): File " ", line 1, in TypeError: cannot concatenate 'str' and 'int' objects Traceback (most recent call last): File " ", line 1, in TypeError: cannot concatenate 'str' and 'int' objects

Untuk menukar perwakilan rentetan integer perpuluhan ke int , lulus rentetan ke fungsi int() , yang mengembalikan integer perpuluhan:

days = "23" days_int = int(days) type(days_int)

print(days_int+5)

28

Jika nombor itu termasuk koma, menandakan beribu-ribu, berjuta-juta, dan lain-lain, anda perlu mengeluarkan koma sebelum lulus nombor tersebut ke fungsi int() :

total = "1, 000, 000" int(total.replace(", ", ""))

1000000

Apabila menukar rentetan yang mewakili bilangan bulat dalam sistem nombor yang berbeza, pastikan anda menggunakan base betul.

Sebagai contoh, dalam sistem heksadesimal, nombor 54732 diwakili sebagai D5CF . Untuk menukarnya kepada integer perpuluhan anda perlu menggunakan asas 16:

int("D5CF", 16)

54735

Jika anda D5CF rentetan D5CF ke fungsi int() tanpa menetapkan pangkalan, ia akan membuang pengecualian ValueError :

int("D5CF")

Traceback (most recent call last): File " ", line 1, in ValueError: invalid literal for int() with base 10: 'D5CF' Traceback (most recent call last): File " ", line 1, in ValueError: invalid literal for int() with base 10: 'D5CF' Traceback (most recent call last): File " ", line 1, in ValueError: invalid literal for int() with base 10: 'D5CF'

Kesimpulannya

Dalam Python, anda boleh menukar rentetan kepada integer menggunakan fungsi int() .

python