Tur konvertatsiyasi
Dasturlashda tur konvertatsiyasi (type conversion) — bir turdagi ma'lumotni boshqa turga aylantirish jarayoni. Masalan: int ma'lumotini strga aylantirish.
Pythonda ikki xil tur konvertatsiyasi mavjud.
Ba'zi holatlarda Python bir ma'lumot turini avtomatik ravishda boshqasiga aylantiradi. Bu yashirin tur konvertatsiyasi (implicit type conversion) deb ataladi.
1-misol: Integerni floatga aylantirish
Keling, ma'lumot yo'qolishining oldini olish uchun Python kichikroq ma'lumot turini (integer) kattaroq ma'lumot turiga (float) qanday aylantirishini ko'rib chiqamiz.
integer_number = 123
float_number = 1.23
new_number = integer_number + float_number
# yangi qiymat va natijaviy ma'lumot turini ko'rsatish
print("Qiymat:",new_number)
print("Ma'lumot turi:",type(new_number))
Natija
Qiymat: 124.23
Ma'lumot turi: <class 'float'>
Yuqoridagi misolda biz mos ravishda int va float turidagi ikkita o'zgaruvchi yaratdik: integer_number va float_number.
Keyin bu ikki o'zgaruvchini qo'shib, natijani new_numberda saqladik.
Ko'rib turganimizdek, new_number qiymati 124.23 va u float ma'lumot turiga ega.
Buning sababi, Python ma'lumot yo'qolishining oldini olish uchun har doim kichikroq ma'lumot turlarini kattaroq ma'lumot turlariga aylantiradi.
Eslatma:
str va intni qo'shishga urinsak, TypeError olamiz. Masalan, '12' + 23. Python bunday holatlarda Implicit Conversion'dan foydalana olmaydi.Explicit Type Conversion'da foydalanuvchilar obyektning ma'lumot turini kerakli ma'lumot turiga aylantiradi.
Aniq tur konvertatsiyasini bajarish uchun int(), float(), str() kabi tayyor (built-in) funksiyalardan foydalanamiz.
Bu turdagi konvertatsiya typecasting deb ham ataladi, chunki foydalanuvchi obyektlarning ma'lumot turini cast qiladi (o'zgartiradi).
2-misol: Explicit Conversion yordamida satr va integerni qo'shish
num_string = '12'
num_integer = 23
print("Type Casting'dan oldin num_string ma'lumot turi:",type(num_string))
# aniq tur konvertatsiyasi
num_string = int(num_string)
print("Type Casting'dan keyin num_string ma'lumot turi:",type(num_string))
num_sum = num_integer + num_string
print("Yig'indi:",num_sum)
print("num_sum ma'lumot turi:",type(num_sum))
Natija
Type Casting'dan oldin num_string ma'lumot turi: <class 'str'>
Type Casting'dan keyin num_string ma'lumot turi: <class 'int'>
Yig'indi: 35
num_sum ma'lumot turi: <class 'int'>
Yuqoridagi misolda biz mos ravishda str va int turidagi qiymatlarga ega ikkita o'zgaruvchi yaratdik: num_string va num_integer. Quyidagi kodga e'tibor bering,
num_string = int(num_string)
Bu yerda biz num_stringni integer turiga aniq konvertatsiya qilish uchun int()dan foydalandik.
num_stringni integer qiymatga aylantirgandan so'ng, Python bu ikki o'zgaruvchini qo'sha oladi.
Nihoyat, biz num_sum qiymatini, ya'ni 35 ni va ma'lumot turini int deb oldik.