05 / 59

Python Type Conversion

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.

  • Implicit Conversion - avtomatik tur konvertatsiyasi
  • Explicit Conversion - qo'lda (manual) tur konvertatsiyasi

Python Implicit Type Conversion (Yashirin tur konvertatsiyasi)

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.

example.py
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

kod
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:

  • Agar str va intni qo'shishga urinsak, TypeError olamiz. Masalan, '12' + 23. Python bunday holatlarda Implicit Conversion'dan foydalana olmaydi.
  • Python bunday vaziyatlar uchun Explicit Conversion deb ataladigan yechimga ega.

Explicit Type Conversion (Aniq tur konvertatsiyasi)

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

example.py
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

kod
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,

example.py
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.

Yodda tutish kerak bo'lgan asosiy fikrlar

  • Type Conversion — obyektni bir ma'lumot turidan boshqa ma'lumot turiga aylantirish.
  • Implicit Type Conversion Python interpretatori tomonidan avtomatik ravishda bajariladi.
  • Python Implicit Type Conversion'da ma'lumot yo'qolishining oldini oladi.
  • Explicit Type Conversion Type Casting deb ham ataladi, obyektlarning ma'lumot turlari foydalanuvchi tomonidan oldindan belgilangan funksiyalar yordamida konvertatsiya qilinadi.
  • Type Casting'da obyektni ma'lum bir ma'lumot turiga majburlaganimiz uchun ma'lumot yo'qolishi mumkin.
QBilimingizni sinab ko'ring
1 / 3

1. Python o'zi avtomatik ravishda bir ma'lumot turini boshqasiga aylantirishi qanday ataladi?