1. Introduksyon
Kapag nagpo-program gamit ang Python, napakahalaga ng pag-convert ng uri ng data. Lalo na ang kakayahang magpalit-palit ng string at numero ay mahalaga sa pag-input at pag-output ng data pati na rin sa mga kalkulasyon. Halimbawa, madalas na kailangan i-convert ang string na inilagay ng user sa form patungong numero para kalkulahin, o i-format ang numerong resulta bilang string para ipakita.
Gayunpaman, kung pagsasamahin ang data na may magkaibang uri, maaaring magdulot ito ng error, kaya dapat mag-ingat ang mga baguhang Python programmer. Sa artikulong ito, ipapakita ang mga paraan ng pag-convert mula sa “string papuntang numero” at “numero papuntang string” sa Python, kasama ang mga praktikal na halimbawa, pati na rin ang paghawak ng error at pag-aayos ng mga espesyal na kaso. Sana makatulong ito upang makuha mo ang mga kasanayan mula sa pangunahing programming hanggang sa mga advanced na aplikasyon sa Python.
Sa susunod na seksyon, tatalakayin nang detalyado ang mga pangunahing paraan ng pag-convert ng uri sa Python.
2. Pangunahing Pagbabago ng Uri sa Python
Sa Python, madalas na limitado ang direktang operasyon kapag magkaiba ang uri ng data, kaya kailangan ang pag-convert ng data sa pagitan ng magkaibang uri. Sa pag-unawa kung paano i-convert ang string sa numero o ang kabaligtaran, makakagawa ka ng mas flexible at mas kaunting error na code. Sa seksyong ito, ipapaliwanag namin ang pangunahing pag-convert ng uri gamit ang 「int()」 at 「float()」 sa Python.
Pag-convert sa Integer
Kapag ang numero ay ibinigay bilang string, upang magsagawa ng kalkulasyon sa Python, kailangan munang i-convert ang string na iyon sa integer o floating-point number. Halimbawa, upang i-convert ang string “42” sa integer na 42
, gamitin ang function na int()
tulad ng sumusunod.
str_number = "42"
int_number = int(str_number)
print(int_number) # Output: 42
Sa ganitong paraan, gamit ang function na int()
, maaaring i-convert ang string patungo sa integer. Kapag matagumpay ang conversion, magagamit na ito bilang numero. Dapat tandaan na kung susubukang i-convert ang string na \"42.0\"
na may decimal point sa integer, magdudulot ito ng error. Ang conversion sa integer ay tumatanggap lamang ng mga integer na halaga; kung may decimal point, kailangan gamitin ang float()
.
Pag-convert sa Floating-Point Number
Ang floating-point number ay uri na kayang panatilihin ang decimal part ng isang numero. Sa Python, maaaring gamitin ang function na float()
upang i-convert ang string sa floating-point number. Halimbawa, upang i-convert ang string “3.14” sa floating-point number, gamitin ang sumusunod na code.
str_float = "3.14"
float_number = float(str_float)
print(float_number) # Output: 3.14
Sa ganitong paraan, gamit ang function na float()
, maaaring i-convert ang string patungo sa floating-point number. Maaari rin i-convert ang mga string na nasa scientific notation gamit ang float()
, at sinusuportahan ang mga notation tulad ng \"1.23e-4\"
.
str_exp = "1.23e-4"
float_exp = float(str_exp)
print(float_exp) # Output: 0.000123
Pag-convert mula Numero patungo sa String
Sa kabaligtaran, madalas ding kailangan i-convert ang numero sa string. Halimbawa, kapag nais mong pagsamahin ang numero sa ibang string para ipakita. Sa ganitong kaso, gamitin ang function na str()
.
num = 42
str_num = str(num)
print("Resulta ng pag-convert ng numero sa string: " + str_num) # Output: Resulta ng pag-convert ng numero sa string: 42
Sa ganitong paraan, ang function na str()
ay nagko-convert mula numero patungo sa string, na nagpapahintulot sa pag-manipula ng mga string na naglalaman ng numero.
Kapag naintindihan mo na ang pangunahing pag-convert ng uri, titingnan naman natin ang mga advanced na paraan tulad ng pag-convert ng ibang base at mga full-width na string.
3. Halimbawa ng Pag-aaplay: Pag-convert ng Maramihang Base at Full-width na Numero
Matapos maunawaan ang mga pangunahing type conversion sa Python, tatalakayin natin ang mga mas advanced na kaso. Sa seksyong ito, ipapaliwanag nang detalyado ang mga paraan ng pag-convert sa iba’t ibang base tulad ng binary at hexadecimal, pati na rin ang paghawak ng mga numerong may kasamang full-width na karakter.
Pag-convert ng Binary, Octal, at Hexadecimal
Ang function na int()
ng Python ay kayang i-convert hindi lamang decimal na string kundi pati na rin ang mga string ng binary, octal, at hexadecimal. Sa ganitong kaso, tinutukoy ang base (radix) bilang ikalawang argumento ng function na int()
. Halimbawa, upang i-convert ang mga binary o hexadecimal na string sa integer, isusulat ito tulad ng sumusunod.
binary_str = "1010" # String ng binary
octal_str = "12" # String ng octal
hex_str = "a" # String ng hexadecimal
int_binary = int(binary_str, 2)
int_octal = int(octal_str, 8)
int_hex = int(hex_str, 16)
print(int_binary) # Output: 10
print(int_octal) # Output: 10
print(int_hex) # Output: 10
Sa ganitong paraan, ang mga string ng binary, octal, at hexadecimal ay maaaring i-convert sa integer gamit ang int()
na tinukoy ang kani-kanilang base. Ang tampok na ito ay lubos na kapaki-pakinabang kapag humahawak ng data na sumusuporta sa iba’t ibang sistema ng base.
Paggawa sa Full-width na Numero at Espesyal na Karakter
Kapag ang input mula sa user ay naglalaman ng mga full-width na numero o espesyal na karakter, maaaring magdulot ito ng error kung susubukang i-convert ito direkta sa Python. Lalo na sa mga Japanese na numero kung saan may halo na full-width na karakter, madalas hindi ito ma-proseso nang tama, kaya inirerekomenda ang paggamit ng method na replace()
upang i-convert ang full-width patungo sa half-width.
Narito ang isang halimbawa kung paano i-convert muna ang full-width na string sa half-width bago i-convert ito sa numero.
str_num_fullwidth = "12345"
str_num_halfwidth = str_num_fullwidth.translate(str.maketrans('0123456789', '0123456789'))
print(int(str_num_halfwidth)) # Output: 12345
Sa pamamagitan ng pamamaraang ito, maaari ring i-convert ang mga full-width na string ng numero sa aktwal na numero. Kung kailangan ding i-convert ang full-width na decimal point, gawin ito nang karagdagang hakbang tulad ng sumusunod.
str_float_fullwidth = "123.456"
str_float_halfwidth = str_float_fullwidth.translate(str.maketrans('0123456789.', '0123456789.'))
print(float(str_float_halfwidth)) # Output: 123.456
Pag-convert ng Kanji na Numero
Sa Python, maaaring gamitin ang Unicode module upang i-convert ang ilang Kanji na numero sa mga numerong halaga. Sa pamamagitan ng unicodedata.numeric()
, maaaring i-convert ang mga string tulad ng “一” o “百” sa floating-point number.
import unicodedata
kanji_num = '五'
converted_num = unicodedata.numeric(kanji_num)
print(converted_num) # Output: 5.0
Gayunpaman, hindi sinusuportahan ng method na ito ang mga Kanji na numero na binubuo ng maraming karakter (hal., “十五”), kaya kung kailangan ng mas kumplikadong pagproseso, inirerekomenda ang paggamit ng karagdagang library o pag-customize gamit ang regular expression.Sa ganitong paraan, nag-aalok ang Python ng maraming paraan para i-convert ang mga string na naglalaman ng numero. Sa susunod na seksyon, tatalakayin nang detalyado kung paano tukuyin kung ang isang input ay maaaring i-convert at kung paano pangasiwaan ang mga error.
4. Error Handling at Validation ng Input
Sa pagproseso ng data, may mga kaso kung saan ang input na data mula sa user o data na natanggap mula sa labas ay hindi maayos na ma-convert sa numero. Kaya mahalaga na suriin nang maaga kung maaaring i-convert ang data sa numero, at magsagawa ng angkop na pagproseso kapag nagkaroon ng error sa conversion. Sa seksyong ito, ipapaliwanag ang mga paraan ng validation ng input at error handling.
Pagtukoy sa Numero gamit ang isdigit()
at Regular Expression
Bilang paraan upang suriin nang maaga kung maaaring i-convert ang string sa numero, may mga paraan gamit ang method na isdigit()
ng Python o regular expression. isdigit()
ay nagbabalik ng True kapag ang string ay binubuo lamang ng mga digit, ngunit nagbabalik ng False kapag may decimal point o minus sign. Kaya ito ay epektibo kapag nais lamang suriin ang mga integer.
def is_integer(input_str):
return input_str.isdigit()
# Halimbawa ng Paggamit
print(is_integer("123")) # Output: True
print(is_integer("3.14")) # Output: False
print(is_integer("-123")) # Output: False
Sa kabilang banda, maginhawa ang paggamit ng regular expression para sa pagtukoy ng mga numero kasama ang floating-point at negatibong numero. Sa sumusunod na halimbawa, naka-set ito upang magbalik ng True para sa mga numero na may + o – sa unahan, pati na rin ang mga numerong may decimal point.
import re
def is_numeric(input_str):
return bool(re.match(r'^[+-]?d+(.d+)?$', input_str))
# Halimbawa ng Paggamit
print(is_numeric("123")) # Output: True
print(is_numeric("-123.45")) # Output: True
print(is_numeric("3.14.15")) # Output: False
print(is_numeric("abc")) # Output: False
Sa ganitong paraan, ang paggamit ng regular expression ay nagbibigay ng mas flexible na paraan upang matukoy kung numero ang isang, kaya ito ay kapaki-pakinabang sa pagproseso ng komplikadong input data.
Error Handling: Pagtugon gamit ang Exception Handling
Sa Python, kapag sinusubukang i-convert ang string sa numero at hindi ito angkop na data, nagkakaroon ng error (ValueError
). Upang mahuli ang error na ito at ipagpatuloy ang pagproseso, karaniwang ginagamit ang try-except
block para sa exception handling.
Sa sumusunod na halimbawa, kapag nagkaroon ng error habang sinusubukang i-convert ang string sa integer, magpapakita ito ng angkop na mensahe ng error.
def convert_to_int(input_str):
try:
return int(input_str)
except ValueError:
print(f"Error: '{input_str}' ay hindi maaaring i-convert sa integer.")
return None
# Halimbawa ng Paggamit
print(convert_to_int("123")) # Output: 123
print(convert_to_int("abc")) # Output: Error: 'abc' ay hindi maaaring i-convert sa integer.
Sa ganitong paraan, sa pagdagdag ng exception handling, hindi titigil ang programa kapag nagkaroon ng error at magpapatuloy ito nang maayos. Bukod dito, magiging malinaw ang feedback sa user, kaya mas madali ang pag-handle ng mga maling input.
Kung maayos ang validation ng input data at error handling, tataas ang pagiging maaasahan ng code. Sa susunod na seksyon, titingnan natin ang paraan ng sabay-sabay na pag-convert ng mga elemento ng listahan.
5. Pamamaraan ng Batch na Pag-convert ng mga Elemento ng Listahan
Sa pagproseso ng data, may mga pagkakataon na kailangan mong i-convert nang sabay-sabay ang mga elemento ng listahan na binubuo ng mga string sa mga numerong halaga. Halimbawa, ang mga CSV file o data na nakuha mula sa labas ay kadalasang naka-imbak bilang mga string. Sa seksyong ito, ipapakita namin ang paraan ng batch conversion gamit ang list comprehension ng Python.
Batch Conversion Gamit ang List Comprehension
Sa Python, bukod sa tradisyonal na pag-ikot sa bawat elemento ng listahan, maaari mong gamitin ang list comprehension upang magsagawa ng data conversion nang mas maikli at mas epektibo. Ang list comprehension ay isang paraan kung saan isinasagawa ang isang tiyak na operasyon sa bawat elemento ng listahan at lumilikha ng bagong listahan.
Halimbawa, kung nais mong i-convert ang isang listahan na naglalaman ng mga numerong nasa anyong string patungo sa listahan ng mga integer, gamitin ang sumusunod na code.
str_list = ["10", "20", "30", "40", "50"]
int_list = [int(i) for i in str_list]
print(int_list) # Output: [10, 20, 30, 40, 50]
Sa halimbawang ito, ang list comprehension na [int(i) for i in str_list]
ay nagko-convert ng bawat elemento sa loob ng str_list
sa pamamagitan ng function na int()
tungo sa mga integer, at nililikha ang bagong listahan na int_list
. Ang pamamaraang ito ay nagpapahintulot ng malakihang pagproseso ng data gamit ang maikling code, kaya’t tumataas ang nababasa at pagganap ng code.
Batch Conversion ng Listahan na may Error Handling
Kapag ang mga elemento sa listahan ay naglalaman ng data na hindi maaaring i-convert (halimbawa, mga string o espesyal na karakter), magdudulot ito ng error. Sa ganitong sitwasyon, maaaring isama ang mga kondisyon o exception handling sa list comprehension upang maiwasan ang conversion error. Narito ang isang halimbawa kung paano i-convert lamang ang mga elementong maaaring i-convert sa mga integer.
str_list = ["10", "20", "abc", "30", "40"]
int_list = []
for i in str_list:
try:
int_list.append(int(i))
except ValueError:
print(f"Babala: '{i}' hindi maaaring i-convert sa integer.")
print(int_list) # Output: [10, 20, 30, 40]
Sa code na ito, ginagamit ang try-except
block upang subukang i-convert ang string sa integer, at magpakita ng mensahe ng error kapag hindi ito maaaring i-convert. Sa pamamagitan ng append()
method, idinadagdag lamang ang mga elementong maaaring i-convert sa int_list
, kaya kahit na may error, magpapatuloy ang proseso at makakakuha ng resulta ng conversion.
Ang batch conversion ng listahan ay isang napaka-kapaki-pakinabang na pamamaraan sa pagproseso ng malalaking volume ng data. Sa susunod na seksyon, ibuod namin ang buong artikulo at isaayos ang mga natutunan natin.
6. Buod
Sa artikulong ito, ipinaliwanag namin ang mga paraan ng pag-convert mula sa string papuntang numero at mula sa numero papuntang string sa Python, mula sa mga batayan hanggang sa mga advanced na aplikasyon. Sa pag-unawa sa kahalagahan ng type conversion sa pagproseso ng data at kung paano ito gawin nang epektibo, mapapalawak mo ang saklaw ng mga operasyon sa Python programming. Narito ang isang maikling buod ng bawat seksyon.
Pagbabalik-tanaw sa Artikulo
- Introduksyon
- Ipinaliwanag ang mga pagkakataon kung kailan kinakailangan ang pag-convert ng string at numero. Ipinakita ang dahilan kung bakit mahalaga ang type conversion sa pagsusuri ng numeriko at pagpapakita ng data.
- Pangunahing pag-convert ng uri sa Python
- Bilang isang pangunahing paraan ng pag-convert ng uri,
int()
ofloat()
、atstr()
Nalaman ko kung paano magbago ng data type sa pagitan ng mga string at numero gamit ang mga function.
- Halimbawa ng aplikasyon: Pagbabago ng maraming numeral system at full-width na numero
- Ipinakilala ang mga paraan upang i-convert ang binary, octal, at hexadecimal na mga numero sa integer, at ang paraan upang i-convert ang full-width na mga karakter sa half-width at tratuhin bilang mga numero. Gayundin,
unicodedata.numeric()
Inilathala rin namin ang paraan ng pag-convert ng mga Kanji na numero sa numerong halaga gamit ang …
- Pag-handle ng error at pag-validate ng input
- Isaalang-alang ang posibilidad na mangyari ang isang error sa panahon ng pag-convert ng numero,
isdigit()
o kung paano gamitin ang regular expression upang ma-verify kung ito ay isang numero,try-except
Ipinakilala namin ang paraan ng paghawak ng mga error gamit ang exception handling.
- Paraan ng sabayang pag-convert ng mga elemento ng listahan
- Natuto ako ng paraan ng pag-convert nang sabay-sabay gamit ang list comprehension, ng paraan ng pagproseso kapag may nangyaring error, at nakamit ang mga kasanayan upang epektibong maproseso ang data kahit na malaki ang dami nito.
Mga Paraan ng Paggamit sa Hinaharap
Ang type conversion sa Python ay bahagi ng lahat ng pagproseso ng data at mga pangunahing operasyon ng programa. Sa hinaharap, sa aktwal na pag-develop, sa pamamagitan ng pagsasagawa ng tamang type conversion at error handling, mababawasan ang paglitaw ng mga bug at makakagawa ng mas mataas na kalidad na code. Bukod sa mga batayang paraan ng conversion na natutunan mo ngayon, sa pag-master ng mas advanced na mga teknik sa data conversion, magagawa mong epektibong harapin ang mas kumplikadong pagproseso ng data.
Sa pamamagitan ng artikulong ito, inaasahan naming natutunan mo ang lahat ng kinakailangang kaalaman at pamamaraan para sa type conversion sa Python. Gamitin ito sa iyong mga susunod na pag-develop ng programa.